我有一个包含数组字段的集合。如果我想查找所有带有特定标签的文档,我使用下一个查询:
db.Bookmarks.find({tags : {$regex: "bbb"}})
是否可以找到具有 2 个或更多特定标签的所有文档?像这样的东西:
db.Bookmarks.find({tags : {$regex: "bbb"}}).find({tags : {$regex: "ccc"}})
或者
db.Bookmarks.find({tags : {$regex: "bbb" and "ccc"}})
更新
所有文件:
> db.Bookmarks.find()
{ "Name" : "Lenta.ru", "Timestamp" : 1380912671423, "URL" : "http://www.lenta.ru", "_id" : "8vJgjH2rKAsyfHPc9", "tags" : [ "aaa", "bbb" ] }
{ "Name" : "Яндекс", "Timestamp" : 1380912663299, "URL" : "http://www.ya.ru", "_id" : "39o2BvPHgEHkzvS4Y", "tags" : [ "aaa", "ccc" ] }
{ "Name" : "Google", "Timestamp" : 1380912656968, "URL" : "http://www.google.com", "_id" : "MkCYfEn3WenpFvQcm", "tags" : [ "aaa", "bbb", "ccc" ] }
我想同时获取所有带有标签“bbb”和“ccc”的文档。就像是
db.Bookmarks.find({tags : {$regex: "bbb" and "ccc"}})
结果将是:
{ "Name" : "Google", "Timestamp" : 1380912656968, "URL" : "http://www.google.com", "_id" : "MkCYfEn3WenpFvQcm", "tags" : [ "aaa", "bbb", "ccc" ] }