我在导入csv文件后修改了这些数据:
{Main: {
"Name" : "MainNAme1",
"age" : "age1",
"ge" :"ge1",
{Crs:{[
{Cr: {
"_id" : ObjectId("5a75baada0f20bd4e612d480"),
"Number" : 400,
"Page" : 24,
"DC" : "NE",
}},
{Cr: {
"_id" : ObjectId("5a75baada0f20bd4e612d489"),
"Number" : 300,
"Page" : 14,
"DC" : "100",
}},
]}},
}}
我想知道如何在根元素中创建一个新数组,如下所示:
{Main: {
"Name" : "MainNAme1",
"info":[{
"age" : "age1",
"ge" :"ge1",
}],
{Crs:{[
{Cr: {
"_id" : ObjectId("5a75baada0f20bd4e612d480"),
"Number" : 400,
"Page" : 24,
"DC" : "NE",
}},
{Cr: {
"_id" : ObjectId("5a75baada0f20bd4e612d489"),
"Number" : 300,
"Page" : 14,
"DC" : "100",
}},
]}},
}}
我正在使用聚合来修改它。
答案 0 :(得分:1)
关闭你的OP。您希望将age
和ge
移动到自己的数组中。您可以在$addToSet
阶段
$group
尝试将此添加到您的$group
pipline:
"Info" : { $addToSet : { "age": "$age", "ge" : "$ge" } } }}
输出
"Info" : [
{
"age" : "age1",
"ge" : "ge1"
}]
答案 1 :(得分:0)
您正在寻找从MongoDB v3.4开始提供的$addFields阶段。在此之前,您需要使用$project
。
db.collection.aggregate({
$addFields: {
"info": [{
"age": "$Main.age",
"ge": "$Main.ge"
}]
}
})