我在聚合后得到了結果
{data: [{"_id":"61922aed85c74b2d1ef671bb","employee":{"firstName":"fname","lastName":"lname","middleName":"mname"},"days":[{"_id":"61922aed85c74b2d1ef671be","day":"2021-09-01T21:00:00.000Z","data":{"hours":0,"type":"OT","_id":"61922aed85c74b2d1ef671bf","updateDate":"2021-11-15T09:39:57.624Z"}},{"_id":"61922aed85c74b2d1ef671c0","day":"2021-09-02T21:00:00.000Z","data":{"hours":0,"type":"OT","_id":"61922aed85c74b2d1ef671c1","updateDate":"2021-11-15T09:39:57.625Z"}}]}]}
是否可以將 days 陣列的資料的內部物件提取到父級別。
由此
{"_id":"61922aed85c74b2d1ef671be","day":"2021-09-01T21:00:00.000Z","data":{"hours":0,"type":"OT","_id":"61922aed85c74b2d1ef671bf","updateDate":"2021-11-15T09:39:57.624Z"}}
對此
{"_id":"61922aed85c74b2d1ef671be","day":"2021-09-01T21:00:00.000Z", "hours":0,"type":"OT", "updateDate":"2021-11-15T09:39:57.624Z"}
uj5u.com熱心網友回復:
只需$project像這樣使用:
db.collection.aggregate([
{
"$project": {
"day": 1,
"hours": "$data.hours",
"type": "$data.type",
"updateDate": "$data.updateDate"
}
}
])
示例在這里
或者更新陣列內的值:
db.collection.aggregate([
{
"$project": {
"_id": 1,
"employee": 1,
"days": {
"$map": {
"input": "$days",
"as": "d",
"in": {
"_id": "$$d._id",
"day": "$$d.day",
"hours": "$$d.data.hours",
"type": "$$d.data.type",
"updateData": "$$d.data.updateDate"
}
}
}
}
}
])
示例在這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357779.html
標籤:MongoDB
