回复头部信息并添加提取数组到相同的结果
Reply head informations and add extract array to same result
有人能帮我解决这个问题吗?
我有这个假的JSON...
[
{
"user": {
"type": "PF",
"code": 12345,
"Name": "Darth Vader",
"currency": "BRL",
"status": "SINGLE",
"localization": "NABOO",
"createDate": 1627990848665,
"olderAdress": [
{
"localization": "DEATH STAR",
"createDate": 1627990848775
},
{
"localization": "TATOOINE",
"createDate": 1627990555888
},
]
}
}
]
我的想法是,我需要提取“olderAdress”并创建新的寄存器,但我也需要保留原始寄存器。
例子:这是我希望的结果。
[
{
"_id": ObjectId("5a3456e000102030405000000"),
"user": {
"Name": "Darth Vader",
"code": 12345,
"createDate":1627990848665,
"currency": "BRL",
"localization": "NABOO",
"status": "SINGLE",
"type": "PF"
}
},
{
"_id": ObjectId("5a789e000102030405000000"),
"user": {
"Name": "Darth Vader",
"code": 12345,
"createDate": 1627990848775,
"currency": "BRL",
"localization": "DEATH STAR",
"status": "SINGLE",
"type": "PF"
}
},
{
"_id": ObjectId("5a991e000102030405000000"),
"user": {
"Name": "Darth Vader",
"code": 12345,
"createDate": 1627990555888,
"currency": "BRL",
"localization": "TATOOINE",
"status": "SINGLE",
"type": "PF"
}
}
]
我在这个 link (Test to extract values) 中尝试同样的想法来测试,但不幸的是我不能。有人可以帮助我吗?
你已经非常接近了,你要做的只是在 $unwind
ing 之前将新位置添加到数组中。
像这样:
db.collection.aggregate([
{
"$addFields": {
"user.olderAdress": {
"$concatArrays": [
"$user.olderAdress",
[
{
"localization": "NABOO",
"createDate": "$$NOW"
}
]
]
}
}
},
... rest of pipeline ...
])
有人能帮我解决这个问题吗?
我有这个假的JSON...
[
{
"user": {
"type": "PF",
"code": 12345,
"Name": "Darth Vader",
"currency": "BRL",
"status": "SINGLE",
"localization": "NABOO",
"createDate": 1627990848665,
"olderAdress": [
{
"localization": "DEATH STAR",
"createDate": 1627990848775
},
{
"localization": "TATOOINE",
"createDate": 1627990555888
},
]
}
}
]
我的想法是,我需要提取“olderAdress”并创建新的寄存器,但我也需要保留原始寄存器。 例子:这是我希望的结果。
[
{
"_id": ObjectId("5a3456e000102030405000000"),
"user": {
"Name": "Darth Vader",
"code": 12345,
"createDate":1627990848665,
"currency": "BRL",
"localization": "NABOO",
"status": "SINGLE",
"type": "PF"
}
},
{
"_id": ObjectId("5a789e000102030405000000"),
"user": {
"Name": "Darth Vader",
"code": 12345,
"createDate": 1627990848775,
"currency": "BRL",
"localization": "DEATH STAR",
"status": "SINGLE",
"type": "PF"
}
},
{
"_id": ObjectId("5a991e000102030405000000"),
"user": {
"Name": "Darth Vader",
"code": 12345,
"createDate": 1627990555888,
"currency": "BRL",
"localization": "TATOOINE",
"status": "SINGLE",
"type": "PF"
}
}
]
我在这个 link (Test to extract values) 中尝试同样的想法来测试,但不幸的是我不能。有人可以帮助我吗?
你已经非常接近了,你要做的只是在 $unwind
ing 之前将新位置添加到数组中。
像这样:
db.collection.aggregate([
{
"$addFields": {
"user.olderAdress": {
"$concatArrays": [
"$user.olderAdress",
[
{
"localization": "NABOO",
"createDate": "$$NOW"
}
]
]
}
}
},
... rest of pipeline ...
])