Meteor.js + MongoDB::从深度嵌套的数组中检索值
Meteor.js + MongoDB :: Retrieve values from deeply nested arrays
我很难得到这个结果:
["Chadstone", "South Yarra"]
当给定这两个值时:
name: 'Soda Rock'
city: 'Melbourne'
从本文档:
{
"_id" : "axHqB4NjXbWwphik3",
"name" : "Soda Rock",
"storeLocation" : [
{
"state" : "Victoria",
"outlet" : [
{
"city" : "Melbourne",
"name" : ["Chadstone", "South Yarra"]
},
{
"city" : "Geelong",
"name" : ["Myer", "Market Square"]
}
]
},
{
"state" : "New South Wales",
"outlet" : [
{
"city" : "Sydney",
"name" : ["Westfield", "Broadway Shopping Centre"]
}
]
}
]
}
我尝试了一些方法,但没有一个输出我想要的结果。
方法# 1:Stores.find(
{
'name': 'Soda Rock',
'storeLocation.outlet.city': 'Melbourne'
},
{
_id: 0,
'storeLocation.outlet.name.$': 1
}
);
结果:
{
"storeLocation" : [
{
"state" : "Victoria",
"outlet" : [
{
"city" : "Melbourne",
"name" : ["Chadstone", "South Yarra"]
},
{
"city" : "Geelong",
"name" : ["Myer", "Market Square"]
}
]
}
]
}
方法# 2:Stores.find(
{
'name': 'Soda Rock',
'storeLocation.outlet.city': {
'Melbourne'
}
},
{
_id: 0,
'storeLocation.outlet.name': 1
}
);
结果:
{
"storeLocation" : [
{
"outlet" : [
{
"name" : ["Chadstone", "South Yarra"]
},
{
"name" : ["Myer", "Market Square"]
}
]
},
{
"outlet" : [
{
"name" : ["Westfield", "Broadway Shopping Centre"]
}
]
}
]
}
我也试过使用meteorhacks:aggregate,但是无法使它工作,因为我没有找到一个对新手友好的文档。
非常感谢您的解决方案和友好的解释!在这里使用聚合似乎有点过头了。下面是一个提取出口名称的示例函数:
var findOutletName = function(name, city) {
var doc = Stores.findOne({name: name});
var outletName = null;
_.each(doc.storeLocation, function(location) {
_.each(location.outlet, function(outlet) {
if (outlet.city === city)
outletName = outlet.name;
});
});
return outletName;
};
可以这样使用:
findOutletName('Soda Rock', 'Melbourne');
非常确定,在标准的Meteor中没有办法做到这一点。聚合包可能会有所帮助,但我也没有用过它。我将使用方法1来检索文档,然后过滤文档,以找到您想要使用标准javascript的信息(或类似下划线可能会帮助您。)
相关文章:
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 从Meteor中的数组中检索字符串
- 在主要的JavaScript引擎中,在JavaScript关联数组(动态对象属性)中检索/插入的复杂性是多少
- 在 ajax 成功和循环 json 数组时检索 json 数组
- 如何从 Angular ng-repeat 指令中检索数组中的某些索引
- 动态插入并从数组中检索键值对 - Javascript
- 正在根据ID从数组中检索对象
- 如何使用javascript中的for循环成对检索数组元素
- 在未命名的json数组url中检索值
- 从source-mirth检索通道目标中的数组结果
- Worklight Javascript适配器:无法检索作为参数传递给适配器的数组值
- php检索多个json对象数组
- 将jquery HTML方法中的数据检索到数组中
- 如何使用getOptions在Jcrop中检索truesize数组值
- 使用JSON检索PHP数组,并使用javascript中的数组来填充播放列表
- 从JSON数组中检索数据
- 从 json 数组检索数据
- 无法使用PHP$_POST数组检索输入字段值
- 如何从javascript多维数组检索值
- 如何从JSON数组检索数据