2015-08-28 1 views
8

Mam szereg identyfikatorów i chcę uzyskać wszystkie dokumenty na raz. Do tego piszę, ale zwraca 0 rekordów.Jak uzyskać wiele dokumentów przy użyciu tablicy identyfikatorów MongoDb?

Jak mogę wyszukiwać przy użyciu wielu identyfikatorów?

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

jestem w stanie uzyskać rekordy przekazując jeden identyfikator jak

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

Prawdopodobnie trzeba owinąć identyfikatory w 'objectID()' jak to zrobić w drugim przykładzie. – trvrfrd

+1

'' db.getCollection ('feed'). Find ({"_ id": {"$ in": [ ObjectId ("55880c251df42d0466919268"), ObjectId ("55bf528e69b70ae79be35006")]}}) może działać. – kxxoling

+0

Dzięki ... Działa – Pankaj

Odpowiedz

8

Wierzę, że brakuje ObjectId. Spróbuj tego:

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

MongoDB jest typ wrażliwy, co oznacza 1 różni się '1', więc są "55880c251df42d0466919268" i ObjectId("55880c251df42d0466919268"). Ta ostatnia jest w typie ObjectID, ale nie str, a także jest domyślnym typem dokumentu MongoDB: _id.

Możesz znaleźć więcej informacji o ObjectID here.

Spróbuj:

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