MongoDB中的规范化对象和数组
Posted
技术标签:
【中文标题】MongoDB中的规范化对象和数组【英文标题】:Normalized Object and array in MongoDB 【发布时间】:2021-05-31 04:46:51 【问题描述】:[
"data":
"id": "123",
"name": "delta1"
,
"property_data": [
"ser_name": "Insights",
"ser_value": "10000"
,
"ser_name": "plans",
"ser_value": "50000"
]
]
解释:property_data
是一个数组。 data
是一个对象。需要将 Array 转换为对象,但问题是如果我在 property_data
上执行 $unwind
,我会得到多次 data
对象,而我只需要一次。我想将我的数据结构转换为多个文档,但 data
不应该一次又一次地重复
预期输出
[
"property_data":
"id": "123",
"name": "delta1"
,
"property_data":
"ser_name": "Insights",
"ser_value": "10000"
,
"property_data":
"ser_name": "plans",
"ser_value": "50000"
,
]
【问题讨论】:
【参考方案1】:这可以通过一些基本的结构操作来实现,如下所示:
db.collection.aggregate([
$project:
property_data:
"$concatArrays": [
"$property_data",
[
"$data"
]
]
,
$unwind: "$property_data"
,
$replaceRoot:
newRoot:
property_data: "$property_data"
])
Mongo Playground
【讨论】:
以上是关于MongoDB中的规范化对象和数组的主要内容,如果未能解决你的问题,请参考以下文章