Есть ли простой способ заменить весь встроенный документ в массив? Скажем замена:Замена встроенного документа в массив в MongoDB
{
"_id" : "2",
"name" : "name2",
"xyz..." : "xyz2..."
}
с:
{
"_id" : "2",
"name" : "name6",
"xyz..." : "xyz5..."
"morefields..." : "fields..."
}
Поиск _id (встроенный). Или мне нужно заменить каждое поле индивидуально, используя $ set?
{
"_id" : "2",
"users" : [{
"_id" : "1",
"name" : "name1",
"xyz..." : "xyz1..."
}, {
"_id" : "2",
"name" : "name2",
"xyz..." : "xyz2..."
}],
"name" : "main name"
}
Это отлично работает, спасибо! Интересная вторая альтернатива, но я не уверен, что она сработает, так как мне нужно будет удалить некоторые записи посередине. «users.2» - это позиция в массиве, который я предполагаю. –
Я думал, что пользователи2 ссылаются на позицию массива, но на самом деле используют id (и возвращают пустые скобки для всех других элементов массива), cool. –
MongoDB распознает массивы в запросе. Таким образом, «users.2» может искать в ' user' array ищет объекты с 'ключ' из' 2' * или * он может посмотреть на 'key: 2'' users'. –