我有以下檔案。
[
{
"content": {
"abc123": {
"_id": "abc123",
"total": 189,
"published": 189,
"created": 0,
"approved": 0,
"rejected": 0,
"sent_for_approval": 0
},
"abc124": {
"_id": "abc124",
"total": 1911,
"published": 1899,
"created": 10,
"approved": 2,
"rejected": 0,
"sent_for_approval": 0
}
}
},
{
"content": {
"abc124": {
"_id": "abc124",
"total": 1911,
"published": 1899,
"created": 10,
"approved": 2,
"rejected": 0,
"sent_for_approval": 0
}
}
}
]
如何將鍵值對的這個物件轉換為單獨的檔案,如下所示,沒有重復enter code here:
[
{
"_id": "abc123",
"total": 189,
"published": 189,
"created": 0,
"approved": 0,
"rejected": 0,
"sent_for_approval": 0
},
{
"_id": "abc124",
"total": 1911,
"published": 1899,
"created": 10,
"approved": 2,
"rejected": 0,
"sent_for_approval": 0
}
]
uj5u.com熱心網友回復:
詢問
- 將物件轉換為陣列
- 展開并替換根(因此每個嵌入的檔案都是一個單獨的根檔案)
- 按鍵分組并僅保留第一個以洗掉重復項
- 替換 root 以獲得預期的輸出
測驗代碼
aggregate(
[{"$set":{"content":{"$objectToArray":"$content"}}},
{"$unwind":"$content"},
{"$replaceRoot":{"newRoot":"$content"}},
{"$group":{"_id":"$k", "doc":{"$first":"$v"}}},
{"$replaceRoot":{"newRoot":"$doc"}}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/396463.html
下一篇:屬性減去屬性大于值的聚合
