2015-08-28 3 views
8

Ich habe eine Reihe von IDs und ich möchte alle Dokumente auf einmal bekommen. Dafür schreibe ich aber es gibt 0 Datensätze zurück.Wie erhält man mehrere Dokumente mit einem Array von MongoDb ID?

Wie kann ich mit mehreren IDs suchen?

db.getCollection('feed').find({"_id" : { "$in" : [ 
"55880c251df42d0466919268","55bf528e69b70ae79be35006" ]}}) 

Ich bin in der Lage Aufzeichnungen zu erhalten, indem einzelne ID wie

db.getCollection('feed').find({"_id":ObjectId("55880c251df42d0466919268")}) 
+0

Sie müssen wahrscheinlich die IDs in 'ObjectId wrap()', wie Sie im zweiten Beispiel zu tun. – trvrfrd

+1

'' db.getCollection ('feed'). Find ({"_ id": {"$ in": [ Objekt-ID ("55880c251df42d0466919268"), Objekt-ID ("55bf528e69b70ae79be35006")]}} funktioniert vielleicht. – kxxoling

+0

Danke ... Es funktioniert – Pankaj

Antwort

8

vorbei glaube ich Ihnen die ObjectId fehlen. Versuchen Sie folgendes:

db.feed.find({ 
    _id: { 
     $in: [ObjectId("55880c251df42d0466919268"), ObjectId("55bf528e69b70ae79be35006")] 
    } 
}); 
11

MongoDB Typ empfindlich ist, was bedeutet, 1 mit '1' unterschiedlich ist, so sind "55880c251df42d0466919268" und ObjectId("55880c251df42d0466919268"). Der letztere Typ ist im ObjectID-Typ, aber nicht str, und ist auch der Standard-MongoDB-Dokumenttyp _id.

Sie können weitere Informationen über ObjectID here finden.

Versuch mal:

db.getCollection('feed').find({"_id" : {"$in" : [ObjectId("55880c251df42d0466919268"), ObjectId("55bf528e69b70ae79be35006")]}}); 
Verwandte Themen