【问题标题】:getting nested objects in mongoose在猫鼬中获取嵌套对象
【发布时间】:2019-07-10 11:57:55
【问题描述】:

我正在尝试使用如下所示的代码检索 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 检索对象的内容而不是对象本身,而无需创建循环并更正数组,或者有任何其他方法可以干净地完成此操作?

【问题讨论】:

    标签: json node.js mongodb


    【解决方案1】:

    没有办法用 mongoose 做到这一点,但有办法让它干净利落:

    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

    【讨论】:

    • 谢谢!这非常有用!
    猜你喜欢
    • 1970-01-01
    • 2016-01-20
    • 2014-02-10
    • 2014-07-13
    • 1970-01-01
    • 2014-05-30
    • 2017-01-28
    • 1970-01-01
    • 2014-07-26
    相关资源
    最近更新 更多