在猫鼬中嵌套嵌套对象

时间:2015-10-08 04:42:24

标签: json node.js mongodb

我正在尝试使用看起来像这样的代码来检索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检索对象的内容而不是对象本身,而无需进行循环并更正数组,还是有其他方法可以干净利落地进行此操作?

1 个答案:

答案 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