在Meteor中查找多个子文档匹配

时间:2016-03-10 14:30:06

标签: javascript mongodb meteor

我找不到与此相关的任何内容。

我需要找到(ON METEORJS MONGO,WHO DONT AGVEEGATION),一些子文档,规则就是,如果type等于2,则获取这些子文档。 问题是,在服务器上我们有投影($)和($ elemMatch)运算符,但这些只给出第一个匹配子文档,我需要所有具有这些值的子文档。

示例文档

"Users":{
   "Example" : [ 
    {
        "type" : "1",
        "title" : "All Included",
        "_id" : "11a4e0ab6f136ddc8870dc95"
    }, 
    {
        "type" : "2",
        "title" : "Other sub",
        "_id" : "123asddc8870dc95"
    }, 
    {
        "type" : "2",
        "title" : "More type 2",
        "_id" : "cxzcasdo2"
    }, 
   ]
}

但是当我做

var data = Users.find({'Example.type':'2'}, {fields:{'Example.$':1}});

返回的值只是第一个匹配的元素_id = 123asddc8870dc95而不是两个类型2的匹配方式。

我不知道怎么做,Meteor没有聚合,我不能在发布之前做地图找到所有子文档并删除mannualy。

:/

编辑:

我知道meteor有一个hack来做聚合,但我不想用它来避免依赖

1 个答案:

答案 0 :(得分:0)

你可以使用meteorhacks聚合流星:聚合。这是一个tutorial

由于您不想使用其他包,因此可以使用以下方法访问原始集合:

myCollection.rawCollection()

我相信rawCollection也会有聚合函数。