2017-02-26 79 views
0

如何通過使用數組的多個值匹配來從集合中獲取對象。例如:我有一個集合中的下面的數據如何使用mongodb中的數組中的元素過濾對象

 { "_id" : ObjectId("512bc95fe835e68f199c8686"), "author" : "dave", "score" : 80, "views" : 100 } 
    { "_id" : ObjectId("512bc962e835e68f199c8687"), "author" : "dave", "score" : 85, "views" : 521 } 
    { "_id" : ObjectId("55f5a192d4bede9ac365b257"), "author" : "ahn", "score" : 60, "views" : 1000 } 
    { "_id" : ObjectId("55f5a192d4bede9ac365b258"), "author" : "li", "score" : 55, "views" : 5000 } 
    { "_id" : ObjectId("55f5a1d3d4bede9ac365b259"), "author" : "annT", "score" : 60, "views" : 50 } 
    { "_id" : ObjectId("55f5a1d3d4bede9ac365b25a"), "author" : "li", "score" : 94, "views" : 999 } 
    { "_id" : ObjectId("55f5a1d3d4bede9ac365b25b"), "author" : "ty", "score" : 95, "views" : 1000 }
現在我得到一個數組作爲輸入
{"annT","ahn","ty"}
可以它做這樣的事情來獲得這些作者的所有記錄
 
db.articles.aggregate(
[ { $match : { author : {"annT","ahn","ty"} } } ] 
);
這個輸入數組的長度因用戶的選擇而異。是否有更好的方法來獲取這些記錄? ThanYou提前

+0

如何過濾這些記錄,根據哪個字段和哪個值? – cubbuk

回答

0

您可以使用$in運算符來匹配一個特定的字段agains一個值的數組。

db.posts.find({author: {$in: ["annT","ahn","ty"]}}) 
相關問題