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

Javascript 在Meteor中查找多个子文档匹配,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我找不到任何与此相关的东西 我需要找到(在METEORJS MONGO上,没有聚合),一些子文档,规则是,如果type等于2,则获取这些子文档。 问题是,在服务器上我们有投影($)和($elemMatch)操作符,但它们只提供第一个匹配的子文档,我需要所有具有这些值的子文档 示例文档 "Users":{ "Example" : [ { "type" : "1", "title" : "All Included", "_id" : "

我找不到任何与此相关的东西

我需要找到(在METEORJS MONGO上,没有聚合),一些子文档,规则是,如果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的两个how has

我不知道如何做到这一点,流星没有聚合,我不能在发布前做一个地图来找到所有子文档并手动删除

:/

编辑:


我知道meteor有一个做聚合的技巧,但我不想用这个,为了避免依赖性

你可以用meteorhacks:aggregate做meteor的聚合。这是一个例子

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

myCollection.rawCollection()

我相信rawCollection也会有聚合功能。

我不想让我的项目有更多的依赖关系,你知道没有这些黑客攻击的另一种形式吗?你可以使用collection.rawDatabase()访问rawCollection数据库。您还应该能够从那里进行聚合。您有一些示例或文档吗?我找不到与MeteorJS相关的rawDatabase。我想知道
$in
Operator在这里是否有任何技巧。谢谢