Я пытаюсь объединить два поля в конвейере агрегации.
Я хочу преобразовать это:
{
"a": 1,
"b": {
"first": {
"property_a": "some_value",
"property_b": "some_value",
"property_c": "some_value"
},
"second": {
"property_a": "some_value",
"property_b": "some_value",
"property_c": "some_value"
},
"third": {
"property_a": "some_value",
"property_b": "some_value",
"property_c": "some_value"
},
"fiftieth": {
"property_a": "some_value",
"property_b": "some_value",
"property_c": "some_value"
}
},
"c": {
"first": {
"property_x": "some_value",
"property_y": "some_value"
},
"second": {
"property_x": "some_value",
"property_y": "some_value"
},
"fiftieth": {
"property_x": "some_value",
"property_y": "some_value"
}
}
}
В это, без необходимости указывать каждый ключ, указанный в «b»:
{
"a": 1,
"b": {
"first": {
"property_a": "some_value",
"property_b": "some_value",
"property_c": "some_value",
"property_x": "some_value",
"property_y": "some_value"
},
"second": {
"property_a": "some_value",
"property_b": "some_value",
"property_c": "some_value",
"property_x": "some_value",
"property_y": "some_value"
},
"third": {
"property_a": "some_value",
"property_b": "some_value",
"property_c": "some_value"
},
"fiftieth": {
"property_a": "some_value",
"property_b": "some_value",
"property_c": "some_value",
"property_x": "some_value",
"property_y": "some_value"
}
}
}
В документации для mergeObjects
, в нем говорится:
mergeObjects перезаписывает значения полей при слиянии документов. Если документы для слияния содержат одно и то же имя поля, поле в итоговом документе будет иметь значение из последнего документа, объединенного для поля.
Как я могу объединить поддокументы полей b и c без указания каждого ключа (в моем реальном сценарии использования 85 ключей). Кроме того, в поле c могут быть не все ключи, перечисленные в пункте b. Или это невозможно?