2015-08-28 20 views
8

Bir dizi ift'im var ve bunların tüm belgelerini bir kerede almak istiyorum. Bunun için yazıyorum ama 0 kayıt döndürüyor.MongoDb kimliği dizisini kullanarak birden çok belge nasıl alınır?

Birden çok Ids kullanarak nasıl arama yapabilirim?

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

Sana ObjectId yapılmadığını düşündüğünüz

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

Muhtemelen objectId 'de kimlikleri sarmak gerekir()' İkinci örneğimizde yaptığımız gibi. – trvrfrd

+1

'' db.getCollection ('feed') bulmak ({"_ id": {"$ in": [ ObjectId ("55880c251df42d0466919268"), ObjectId ("55bf528e69b70ae79be35006")]}}) '' belki de çalışır. – kxxoling

+0

Teşekkürler ... Çalışıyor – Pankaj

cevap

8

gibi tek id geçirerek kayıtlara ulaşmak mümkün. Bu deneyin:

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

MongoDB 1'1' farklı olduğu anlamına tipi duyarlı olduğu, bu nedenle "55880c251df42d0466919268" ve ObjectId("55880c251df42d0466919268") bulunmaktadır. Daha sonra bir, ObjectID tipindedir, ancak str değildir ve ayrıca varsayılan _id tip MongoDB belgesidir.

ObjectID here hakkında daha fazla bilgi bulabilirsiniz.

Sadece dene:

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