2011-03-31 108 views
1

假設我在數據庫中有許多「帖子」作爲文檔,每個文檔都有一個「作者」屬性。如何在MongoDB中執行此查詢?

我要執行這樣的查詢:

posts.find(author IN 3, 5, 733, 144, 66, 3457 , 22, 156, 344...) 

Basicaly,我想找到的所有帖子這裏筆者.....然後給百IDS。

在Mongo中最有效的方法是什麼?

回答

3

使用蒙戈的$in操作:

posts.find({"author" : {"$in":[3, 5, 733, 144, 66, 3457 , 22, 156, 344]}}); 

這裏的參考:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

你應該指數筆者領域也:posts.ensureIndex({author:1});

+0

是這有效嗎?如果人們追隨數千人呢? – TIMEX 2011-03-31 04:10:39

+0

@TIMEX - 我最近做了一些測試,這似乎表明在$ in子句中存在一個「最佳點」值(即值的數量較少/查詢的數量較多,值較高/數值較低查詢數量) - 請參閱我的答案在這裏的詳細信息:http://stackoverflow.com/questions/5157265/is-it-ok-to-query-a-mongodb-multiple-times-per-request/5157425 – AdaTheDev 2011-03-31 07:48:46