{
"_id": {
"$oid": "2534c6893d643531411"
},
"id": "854",
"920543": {
"createdAt": 1667210991769,
},
"750544": {
"createdAt": 1693292609,
},
"719572": {
"createdAt": 1693292739,
}
我尝试遍历集合中的每个文档,并移动文档中所有嵌入的文档,并为每个嵌入的文档创建一个新文档,其中键如750544,719572作为新id中的messageId字段,其余数据如createdAt作为普通字段。我还希望在新文档中保持id字段不变。
基于上述内容的示例文档如下所示:
{
"_id": {
"$oid": "someIdGeneratedbyMongo"
},
"id": "854",
"messageId": "920543",
"createdAt": 1667210991769
},
{
"_id": {
"$oid": "someIdGeneratedbyMongo"
},
"id": "854",
"messageId": "750544",
"createdAt": 1693292609
},
{
"_id": {
"$oid": "someIdGeneratedbyMongo"
},
"id": "854",
"messageId": "719572",
"createdAt": 1693292739
}
等
1条答案
按热度按时间cotxawn71#
$set
-创建一个data
数组字段,其值为将当前文档中的所有字段(不包括_id
和id
字段)转换为具有k
和v
字段的文档。$unwind
-解构data
数组字段。$project
-修饰输出文档。Demo @ Mongo Playground