Нужна реальная помощь в этом! И только вы можете помочь мне!
В настоящее время пишу миграцию MongoDb, и мне необходимо добавить несколько новых полей во вложенный объект с неизвестным именем поля
Пример документа:
{
"_id" : "1a3a5c0c-4542-4bcc-9965-5c04db8d3edc",
"name" : "Test_person",
"connections" : {
"540e1234-field_random_num" : {
"some_field_1" : "Garbage_string_1",
"some_field_2" : {
"sub_field_1" : 1234,
"sub_field_2" : 5678,
"sub_field_3" : null,
}
},
"48925678-field_random_num_2" : {
"some_field_1" : "Garbage_string_2",
"some_field_2" : {
"sub_field_1" : 4321,
"sub_field_2" : 8765,
"sub_field_3" : null,
}
}
}
}
Учитывая этот документ, где connections: { [id: string]: some_object_type }
Обратите внимание, что:
some_object_type: {
some_field_1: string,
some_field_2: sub_object_type
}
и
sub_object_type: {
"sub_field_1" : number
"sub_field_1" : number
"sub_field_1" : string
}
Пробовали использовать $[]
, который работал для других коллекций в том же сценарии миграции. К сожалению, $
не очень помогает, учитывая, что его использование ограничено массивами.
Мой текущий ход мыслей заставил меня поверить, что правильный подход лежит в операторе оценочного запроса $where
, чтобы изолировать произвольно названное id : string
поле объекта
Короче говоря ... ищет альтернативу оператору $[]
для использования с объектами
Обновленный документ будет выглядеть так:
{
"_id" : "1a3a5c0c-4542-4bcc-9965-5c04db8d3edc",
"name" : "Test_person",
"connections" : {
"540e1234-field_random_num" : {
"some_field_1" : "Garbage_string_1,
"some_field_2" : {
"sub_field_1" : 1234,
"sub_field_2" : 5678,
"sub_field_3" : null,
"new_sub_field" : null <-- new field
}
},
"48925678-field_random_num_2" : {
"some_field_1" : "Garbage_string_2",
"some_field_2" : {
"sub_field_1" : 4321,
"sub_field_2" : 8765,
"sub_field_3" : null,
"new_sub_field" : null <-- new field
}
}
}
}