Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在返回结果中创建新字段,并根据使用Mongoose的条件在其中设置值?_Javascript_Node.js_Mongoose_Conditional Statements_Aggregate - Fatal编程技术网

Javascript 如何在返回结果中创建新字段,并根据使用Mongoose的条件在其中设置值?

Javascript 如何在返回结果中创建新字段,并根据使用Mongoose的条件在其中设置值?,javascript,node.js,mongoose,conditional-statements,aggregate,Javascript,Node.js,Mongoose,Conditional Statements,Aggregate,我有一个叫“动物”的MongoBD收藏 [ { _id:ObjectId("5f3ecddd7fe1af0c68614605"), status: "wild", name: "Wolf" }, { _id:ObjectId("5f3ecddd7fe1af0c68614606&

我有一个叫“动物”的MongoBD收藏

    [
        {
            _id:ObjectId("5f3ecddd7fe1af0c68614605"),
            status: "wild",
            name: "Wolf"
        },
        {
            _id:ObjectId("5f3ecddd7fe1af0c68614606"),
            status: "domestic",
            name: "Dog"
        },
        {
            _id:ObjectId("5f3ecddd7fe1af0c68614607"),
            status: "domestic",
            name: "Pussy Cat"
        },
        {
            _id:ObjectId("5f3ecddd7fe1af0c68614608"),
            status: "wild",
            name: "Lion"
        },
        {
            _id:ObjectId("5f3ecddd7fe1af0c68614609"),
            status: "wild",
            name: "Snake"
        }
    ]
我想使用mongoose中的聚合管道查询该集合,并使用一个新字段返回结果,该字段根据文档中的
status
字段对其进行分类。例如,具有
状态的文档:“野生”
获取新字段
new\u字段:“坚韧的森林动物”

然后,具有
状态的文档:“家养”
获得新字段
新字段:“友好邻里动物”

我想要这样的结果

[
    {
        _id: "5f3ecddd7fe1af0c68614605",
        status: "wild",
        name: "Wolf",
        new_field: "Tough Forest Animal"
    },
    {
        _id: "5f3ecddd7fe1af0c68614606",
        status: "domestic",
        name: "Dog",
        new_field: "Friendly Neighborhood Animal"
    },
    {
        _id: "5f3ecddd7fe1af0c68614607",
        status: "domestic",
        name: "Pussy Cat",
        new_field: "Friendly Neighborhood Animal"
    },
    {
        _id: "5f3ecddd7fe1af0c68614608",
        status: "wild",
        name: "Lion",
        new_field: "Tough Forest Animal"
    },
    {
        _id: "5f3ecddd7fe1af0c68614609",
        status: "wild",
        name: "Snake",
        new_field: "Tough Forest Animal"
    }
]

非常感谢所有给予我的帮助。谢谢你

我终于弄明白了。使用switch语句

AnimalsModel.aggregate([
    {
        $project: {

            "_id": 1,
            "status": 1,
            "name": 1,
            "new_field": {
                "$switch": {
                    "branches": [
                        { "case": { "$eq": [ "$status", "wild" ] }, "then": 'Tough Forest Animal' },
                        { "case": { "$eq": [ "$status", "domestic" ] }, "then": 'Friendly Neighborhood Animal' },
                    ],
                    "default": 'None of the above'
                }
            }
        }
    }
],function (error, animals) {
    console.log(animals)
});