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