Node.js 更改mongodb中嵌入文档的根目录
以下是我的输出:Node.js 更改mongodb中嵌入文档的根目录,node.js,mongodb,aggregation-framework,Node.js,Mongodb,Aggregation Framework,以下是我的输出: [ { "_id": "5f637432c57a7d0017af1421", "project": [ { "_id": "5f637774c57a7d0017af1423", "project
[
{
"_id": "5f637432c57a7d0017af1421",
"project": [
{
"_id": "5f637774c57a7d0017af1423",
"projectName": "Notification project",
"licenseType": "agricultural and biological engineering",
"location": "chennai",
"description": "Sample data Sample data Sample data Sample data Sample data.",
"duration": 70,
"createdAt": "2020-09-17T14:49:24.860Z",
"updatedAt": "2020-09-17T14:49:24.860Z",
"__v": 0
},
{
"_id": "5f63965166bca1001783fbb4",
"projectName": "Sample project 1",
"licenseType": "civil",
"location": "chennai",
"description": "Sample data 1",
"duration": 30,
"createdAt": "2020-09-18T17:01:05.929Z",
"updatedAt": "2020-09-18T17:01:05.929Z",
"__v": 0
},
{
"_id": "5f63967866bca1001783fbb9",
"projectName": "Sample project 2",
"licenseType": "nuclear",
"location": "chennai",
"description": "Sample data 2",
"duration": 80,
"createdAt": "2020-09-18T17:01:44.375Z",
"updatedAt": "2020-09-18T17:01:44.375Z",
"__v": 0
}
]
}
]
我只想将项目作为新根。我尝试了$replaceRoot,但它不起作用。它说它需要一个对象,但它接收一个字符串。也许我做得不对
注意:我使用聚合框架来获得上面显示的输出
谢谢你的帮助!谢谢。请尝试
[{$undend:$project”},{$replacetwith:$project”}]
。您能在这里描述一下您想要哪种类型的输出吗?@PrakashHarvani我希望我的输出是这样的:{“project”:[{……},{……},{……}。@Rfroes87您能告诉我为什么需要解开它吗?感谢你help@Sushmit如果您一步一步地做,您将看到,在$unwind
之后,您现在有3个文档,其中包含一个$project
文档,而不是一个包含3个文档的数组;这样,使用$replaceWith
——这是$replaceRoot
的别名——将起作用,因为正如文档所述,它将“将嵌入式文档提升到顶层”。这就是为什么您需要$unwind
。