Обновление элементов внутри массива объясняется здесь:
https://docs.mongodb.com/manual/reference/operator/update/set/#set-elements-in-arrays
Но в документах, кажется, отсутствует тот случай, когда массив еще не существует в документе. Пример:
Если есть этот документ:
{
_id: 'some-id',
otherprops: 'value'
}
И я хочу, чтобы это стало таким:
{
// ...
settings: {
friends: [
{
name: 'John Doe',
age: 28
}
]
}
// ...
}
В этой ситуации я не знаю, существует ли уже массив settings.friends. Итак, мой запрос выглядит так:
{
$set: {
'settings.friends.0.name': 'John Doe',
'settings.friends.0.age': 28
}
}
Однако документ выглядит так:
{
// ...
settings: {
friends: {
0: {
name: 'John Doe',
age: 28
}
}
}
// ...
}
Есть ли способ заставить mongodb создать массив вместо объекта в моем примере , но с использованием только точечных обозначений.