sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB Java:Hledání objektů v Mongo pomocí operátoru QueryBuilder $in nevrací nic

Nyní děláte ekvivalent :

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

Což není platný dotaz, protože neurčujete, na jakém poli se má $in. Předpokládám, že chcete :

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

Změňte odpovídajícím způsobem konstrukční kód dotazu a měli byste být v pořádku.

EDIT:Přidání správného kódu:

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());
                }
            }
        } 

Upozorňujeme, že to předpokládá, že "Id" je něco jiného než "_id"




  1. mongoDB přidání konkrétních dat do db Replica

  2. Jak fungují moduly ansible mongodb_user,mongodb_replicaset?

  3. ukládat rozsahy IP v Redis

  4. Jak vrátit všechna pole bez zadání po $skupinové fázi