我正在尝试将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(聚合)吗?
答案 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