我想應用一個陣列的一個陣列的合并物件和映射:
當我是一級陣列時,我能夠完成映射和合并,但如果陣列有另一個陣列,我不確定如何應用另一個映射/合并物件。
{
_id: "123",
date: "1900-01-01T11:00:00.0000000",
name: "joe",
birthdayservice: [
{
"date": "1999-01-01",
"team" : [
{
"requestedDate": "1999-01-01"
},
{
"requestedDate": "1999-05-01"
}
},
{
"date": "1998-01-01",
"team" : [
{
"requestedDate": "1999-01-01"
},
{
"requestedDate": "1999-05-01"
}
}
]
}
我可以通過生日服務中的第一個陣列進行映射,以將日期轉換為 ISO_Date/todate,例如:
{
"$addFields": {
"birthdayservice": {
$map: {
input: "$birthdayservice", //this is an array
in: {
"$mergeObjects": [
"$$this",
{
"date": {
"$toDate": "$$this.date"
}
}
]}
}
}
}
}
但是當我進入更多的嵌套值時,我得到
$mergeObjects 需要物件輸入,但輸入是一個陣列
{
"$addFields": {
"birthdayservice": {
$map: {
input: "$birthdayservice", //this is an array
in: {
"$mergeObjects": [
"$$this",
{
"date": {
"$toDate": "$$this.date"
}
}
]}
}
}
}
},
{
"$addFields": {
"birthdayservice": {
$map: {
input: "$birthdayservice.team", //also an array
in: {
"$mergeObjects": [
"$$this",
{
"requestedDate": {
"$toDate": "$$this.requestedDate"
}
}
]}
}
}
}
}
我的最終目標是將日期字串欄位替換為日期轉換
生日服務日期生日服務團隊請求日期
兩者都到 ISO_Dates 如下:
{
_id: "123",
date: "1900-01-01T11:00:00.0000000",
name: "joe",
birthdayservice: [
{
"date": ISO_Date("1999-01-01T11:00:00.0000000Z"),
"team" : [
{
"requestedDate": ISO_Date("1999-01-01T11:00:00.0000000Z")
},
{
"requestedDate": ISO_Date("1999-05-01T11:00:00.0000000Z")
}
},
{
"date": "1998-01-01",
"team" : [
{
"requestedDate": ISO_Date("1999-01-01T11:00:00.0000000Z")
},
{
"requestedDate": ISO_Date("1999-05-01T11:00:00.0000000Z")
}
}
]
}
uj5u.com熱心網友回復:
詢問
- 這會將所有日期字串轉換為內部日期
birthdayservice和teams陣列 - 地圖
birthdayservice - 轉換
"date" - 嵌套地圖以轉換
team - 欄位更改值的方式是
mergeObjects(在 mongodb5 我們也setField必須這樣做)
測驗代碼在這里
aggregate(
[{"$set":
{"birthdayservice":
{"$map":
{"input":"$birthdayservice",
"in":
{"$mergeObjects":
["$$bs",
{"date":{"$toDate":"$$bs.date"},
"team":
{"$map":
{"input":"$$bs.team",
"in":
{"$mergeObjects":
["$$t", {"requestedDate":
{"$toDate":"$$t.requestedDate"}}]},
"as":"t"}}}]},
"as":"bs"}}}}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/410202.html
標籤:
上一篇:字典串列的串列理解
