在值的一部分上搜索集合

时间:2014-02-07 04:33:59

标签: mongodb meteor

假设我有一个带有属性X的项的集合C.假设X的值本身就是对象,列出{a:1, b: 2, c: 3}。我可以在C上找到(或findOne)要求X属性具有属性== 1的值的项目吗?我想写C.find({X.a: 1})。或者也许

C.find({X: function(value) { 
              return value.a == 1; 
           }
       });   

2 个答案:

答案 0 :(得分:1)

您的伪代码只需要在属性周围引用,以便mongo理解它。 C.find({'X.a': 1})将返回X.a等于1的任何文档。

如果您想了解更多内容,关键词是'subocuments'和'dot notation',如here所述。

答案 1 :(得分:0)

您可以使用点表示法来访问嵌套文档中的元素,但如果需要访问列表中的元素,则需要执行$ unwind,然后检查X.a是否等于1.