MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB Java:Намирането на обекти в Mongo с помощта на оператор $in на QueryBuilder не връща нищо

Сега правите еквивалента на :

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

Което не е валидна заявка, тъй като не указвате в какво поле да се въведе $in. Предполагам, че искате:

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

Променете съответно кода за конструиране на вашата заявка и трябва да сте добре.

РЕДАКТИРАНЕ:Добавяне на правилен код:

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

Моля, обърнете внимание, че това предполага, че „Id“ е нещо различно от „_id“




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да изпълним aggregate в mongodb в laravel framework

  2. Достъп до MongoDB от приложението AppEngine

  3. Как мога да използвам MongoDB в Kohana?

  4. MongoDB не създава база данни в shell

  5. как да проверя дали поле съществува в конкретен документ Mongodb с помощта на C#?