2011-10-25 59 views
6

假設您有一個id-s列表,其中可包含數以千計的數據庫內文檔的id-s。回覆這些文件的最佳方法是什麼?查詢MongoDB中包含列表中的id的文檔

我應該爲他們每個人調用一個查詢還是應該指定一個巨大的OR查詢?可能是有什麼更好的方式,我不知道

回答

6

有,$在:

db.co.find({_id:{$in:[id1, id2, id3, .., idN]}}) 
+1

是否確定有成千上萬的值有? –

+0

是的,沒有實際的限制。我相信整個查詢不應超過16Mb,但您絕不會達到此限制。即使你這樣做,你也可以批量生產。 –

+0

你的意思是查詢字符串,對吧? –

8

在C#代碼,$in

var ids = new int[] {1, 2, 3, 4, 5}; 
var query = Query.In("name", BsonArray.Create(ids)); 
var items = collection.Find(query);