अब आप इसके बराबर कर रहे हैं:
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" के अलावा कुछ और है