MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB Java:Znajdowanie obiektów w Mongo za pomocą operatora QueryBuilder $in nic nie zwraca

Robisz teraz odpowiednik :

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

To nie jest prawidłowe zapytanie, ponieważ nie określasz, w którym polu należy $in. Zakładam, że chcesz:

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

Zmień odpowiednio kod budowy zapytania i wszystko powinno być w porządku.

EDYCJA:Dodanie poprawnego kodu :

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

Pamiętaj, że zakłada się, że „Id” jest czymś innym niż „_id”




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapisywanie MongoDb powoduje błąd dla prywatnych członków klasy PHP

  2. MongoDB — Dlaczego indeks _id nie wyświetla błędu w przypadku zduplikowanych wpisów?

  3. Wepchnij forEach, gdy zapytanie nie działa poprawnie

  4. Jaki jest zalecany odpowiednik usuwania kaskadowego w MongoDB dla relacji N:M?

  5. 5 sposobów na uzyskanie milisekund z daty w MongoDB