我發現mongodb聚合框架是非常強大的 - 它似乎是一個很好的選擇,以展平一個對象。我的模式在一個名爲materials的數組中使用了一個子對象數組。材料的數量是可變的,但是特定的字段(類別)在數組中的對象間是唯一的。我想使用聚合框架來扁平化結構並根據類別字段的值動態重命名字段。我無法找到一個簡單的方法來完成這個使用$項目以及$ cond。有沒有辦法?MongoDB聚合框架 - 動態字段重命名
的原因材料的對象的陣列,以允許簡單的搜索:
例如{'materials.name':'XYZ'}將找到XYZ的任何文檔都拉回來。
E.g.之前和文件
{
"_id" : ObjectId("123456"),
"materials" : [
{
"name" : "XYZ",
"type" : "Red",
...
"category" : "A"
},
{
"name" : "ZYX",
"type" : "Blue",
...
"category" : "B"
}]
}
後
{
"material_A_name" : "XYZ",
"material_A_type" : "Red",
...
"material_B_name" : "ZYX",
"material_B_type" : "Blue",
...
}
您的'after'文檔無效JSON – JohnnyHK
謝謝,更新 - 這是從我的編輯器中創建模型的錯誤 – user2234151
好吧,我明白你現在想要做什麼。在agg框架中對動態生成的鍵沒有太多的支持,所以我沒有看到你怎麼做到這一點。您可能只需在代碼中處理結果即可完成此操作。 – JohnnyHK