将对象转换为MongoDB文档

时间:2019-10-23 14:22:39

标签: mongodb nosql mongodb-query

我正在尝试将mongoDB文档对象转换为具有相同数据的数组。 我有一个结构如下的文件:

{
    _id:"43434",
    fistname: 'Bob',
    lastname: 'Toto',
    address: { city: "cityName", postalCode: "000000", streetName: "streetname" },
}

我想像这样重组我的数据:

{
    _id:"43434",
    fistname: 'Bob',
    lastname: 'Toto',
    address: [{ city: "cityName", postalCode: "000000", streetName: "streetname" }],
}

我将如何实现这一目标? 我可以使用mongo的 $ project(聚合)吗?

2 个答案:

答案 0 :(得分:0)

尝试此查询

db.tester.aggregate(
   [
       {$match:{"_id":ObjectId("5db06342f079fa02a63adaf8")}},
      {
         $project: {
            fistname: 1,
            lastname:1,
            address: [{ city:'$address.city','postalCode':'$address.postalCode',streetName:'$address.streetName'}]
         }
      }
   ]
)

答案 1 :(得分:0)

正如我所评论的,请检查此-如果您使用的是mongoDB v4.2:

db.YourCollectionName.aggregate([{ $match: { address: { $exists: true } } },
{ $project: { address: ["$address"] } }, { $merge: { into: "YourCollectionName", on: "_id" } }
])

注意::这里我们合并文档,但不替换它。

参考: $merge