我正在尝试使用看起来像这样的代码来检索mongoose中的对象数组。
mongoPlaces
.find({
'person.types': {$in: ["student"]}
})
.select('family')
.lean()
.limit(3)
.exec(function (err, families) {
console.log()
})
结果是这样的
[
0: family:{objects}
1: family:{objects}
2: family:{objects}
]
我需要这样的东西
[
0: {objects}
1: {objects}
2: {objects}
]
是否有某种方法可以使用mongoose检索对象的内容而不是对象本身,而无需进行循环并更正数组,还是有其他方法可以干净利落地进行此操作?
答案 0 :(得分:3)
用猫鼬没有办法做到这一点,但有办法让它干净利落:
mongoPlaces
.find({
'person.types': {$in: ["student"]}
})
.select('family')
.lean()
.limit(3)
.exec(function (err, docs) {
var families = docs.map(function pluckFamily(doc) {
return doc.family;
});
return families;
});
在此示例中,map
将每个检索到的文档提供给函数pluckFamily
,并形成另一个数组,其中包含该函数返回的所有值。
如果你要做很多这样的事情,你可能想看看下划线库。它包含pluck function。