sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB Java:Att hitta objekt i Mongo med QueryBuilder $in-operatorn returnerar ingenting

Du gör nu motsvarande :

db.col.find({$in:[{Id:id1}, {Id:id2}, ..., {Id:idN}]})

Vilket inte är en giltig fråga eftersom du inte anger vilket fält du ska $ingå i. Jag antar att du vill ha:

db.col.find({Id:{$in:[id1, id2, ..., idN]}})

Ändra din frågekonstruktionskod i enlighet med det så borde det gå bra.

EDIT:Lägger till korrekt kod :

public static void getDocuments(List<Integer> documentIds) {

            BasicDBList docIds = new BasicDBList();
            docIds.addAll(documentIds)
            DBObject inClause = new BasicDBObject("$in", docIds);
            DBObject query = new BasicDBObject("Id", inClause);
            DBCursor dbCursor = mongoRule.getDatabase().getCollection("mycollection").find(query);
            System.out.println(dbCursor == null);
            if (dbCursor != null) {
                while (dbCursor.hasNext()) {
                    System.out.println("object -  " + dbCursor.next());
                }
            }
        } 

Observera att detta förutsätter att "Id" är något annat än "_id"




  1. Kör databasmigrering (mongodb) med node.js

  2. Vad är HBase-znoder?

  3. MongoDB :frågar efter dokument med två lika fält, $match och $eq

  4. fortsätt i cursor.forEach()