javascript - 如何使用 Mongoose 从字符串数组中的对象数组返回字段

标签 javascript mongoose

我在 mongoose 中有一个查询返回这个:

{
    some_keys: "some values", 
    objs:[
        {name:"name1"}, 
        {name:"name2"} 
    ] 
}

我想以这种格式返回:

{ 
    some_keys: "some values",
    objs:[
        "name1", 
        "name2" 
    ] 
}

最佳答案

使用 $map运算符循环遍历 objs 数组,并只返回每个 objname 的值。

试试这个:

const result = await testSchema.aggregate([
    {
        $addFields: {
            objs: {
                $map: {
                    input: "$objs",
                    as: "obj",
                    in: "$$obj.name"
                }
            }
        }
    }
]);

输出

{
    "_id" : ObjectId("..."),
    "some_keys" : "some values",
    "objs" : [
        "name1",
        "name2"
    ]
}

关于javascript - 如何使用 Mongoose 从字符串数组中的对象数组返回字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66684954/

相关文章:

javascript - Promise.map 未完成,因为后续 Promise.join 先完成?都答应吗?

javascript - 如何获取数组嵌入式数组 Mongoose 的大小?

javascript - 根据另一个元素的值禁用一个元素的 url

javascript - 如何将 Reactjs 与 Nodejs 结合使用,发送 html(组件)以响应 API

mongodb - 为什么 Mongoose ObjectId.valueOf() 返回一个对象?

mongodb - Mongoose aggregate Lookup - 如何按特定 id 过滤

javascript - 通过交换其内容在同一个 div 中请求确认?

javascript - Angular JS,是否可以动态设置 ng-include 或 ng-controller?

javascript - 日期正则表达式不起作用

javascript - 限制显示数组对象