Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Arrays 如何在MongoDB中将数组转换为对象_Arrays_Mongodb_Object_Mongoose_Aggregation Framework - Fatal编程技术网

Arrays 如何在MongoDB中将数组转换为对象

Arrays 如何在MongoDB中将数组转换为对象,arrays,mongodb,object,mongoose,aggregation-framework,Arrays,Mongodb,Object,Mongoose,Aggregation Framework,我有一个给定的对象数组,数组元素数未知: { "content": [ { "_id": "refbooks", "total": 189, "published": 189, "created": 0,

我有一个给定的对象数组,数组元素数未知:

               { "content": [
                    {
                        "_id": "refbooks",
                        "total": 189,
                        "published": 189,
                        "created": 0,
                        "approved": 0,
                        "rejected": 0,
                        "sent_for_approval": 0
                    },
                    {
                        "_id": "weblinks",
                        "total": 1911,
                        "published": 1899,
                        "created": 10,
                        "approved": 2,
                        "rejected": 0,
                        "sent_for_approval": 0
                    },.................]}
我想将其转换为给定的对象:

                    { "content": {
                    {
                        "_id": "refbooks",
                        "total": 189,
                        "published": 189,
                        "created": 0,
                        "approved": 0,
                        "rejected": 0,
                        "sent_for_approval": 0
                    },
                    {
                        "_id": "weblinks",
                        "total": 1911,
                        "published": 1899,
                        "created": 10,
                        "approved": 2,
                        "rejected": 0,
                        "sent_for_approval": 0
                    },.................}}
我尝试使用$unwind,但没有获得所需的输出。 如何在MongoDB中实现这种内部聚合管道


我使用的是Mongo 3.4版。

我想第二个版本不是合适的对象格式,您需要为make对象设置键值pare

{ "content": {
                   "key1":{
                        "_id": "refbooks",
                        "total": 189,
                        "published": 189,
                        "created": 0,
                        "approved": 0,
                        "rejected": 0,
                        "sent_for_approval": 0
                    },
                   "key2":{
                        "_id": "weblinks",
                        "total": 1911,
                        "published": 1899,
                        "created": 10,
                        "approved": 2,
                        "rejected": 0,
                        "sent_for_approval": 0
                    }}}
我找到了解决办法

{
            $project: {
                "content": {
                    "$arrayToObject": {
                        "$map": {
                            "input": "$content",
                            "as": "el",
                            "in": {
                                "k": "$$el._id",
                                "v": "$$el"
                            }
                        }
                    }
                }
}

这是一个不可能的设置。。。不知道你的意思。每当你有一个集合的东西,它必须被包装在一个数组中…?你的预期结果不是一个有效的对象。是的,就像that@LabeebShareef我想您已经找到了答案,使用underline.js还有另一种方法可以做到这一点