如何从选定文档中获取嵌套对象?
如果这是我的文档,我通过 Collection.findOne({ _id: 'dZXr2Pg7Ak4M5aYWF'}) 获得
...
{
"_id" : "dZXr2Pg7Ak4M5aYWF",
"points" : [
{
"id" : "Gwf5BzorXyYBZSEzK",
"coordinates" : [
433,
215
],
"content" : "anything"
},
{
"id" : "iwSM98W5PD87BtcLa",
"coordinates" : [
666,
186
]
}
]
}
...我需要获取id为Gwf5BzorXyYBZSEzK的点的完整数据。所以我的结果应该是这样的:
result = {
"id" : "Gwf5BzorXyYBZSEzK",
"coordinates" : [
433,
215
],
"content" : "anything"
}
最佳答案
您可以简单地过滤points
数组,使用 Array.prototype.filter
,像这样
console.log(data.points.filter(function(obj) {
return obj.id === "Gwf5BzorXyYBZSEzK";
})[0]);
// { id: 'Gwf5BzorXyYBZSEzK' coordinates: [ 433, 215 ], content: 'anything' }
我们只从过滤结果数组中取出第一个元素。如果你想获取所有具有特定id的元素,那么只需删除下标即可。
<小时/>如果您的环境支持ECMAScript 2015's Arrow functions ,那么你可以写成相同的
console.log(data.points.filter((obj) => obj.id === "Gwf5BzorXyYBZSEzK")[0]);
关于javascript - 获取嵌套对象 - 但标识符是所需对象的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33951765/