Прежде всего, вы забыли кавычки вокруг имен полей.Ваши документы должны быть такими:
{
"id": "1",
"invoices": [{
"id": "1",
"balance": 1
}, {
"id": "2",
"balance": 1
}]
}
У меня ограниченный опыт работы с MongoDB, так как я узнал об этом в этом семестре в университете.Однако вот мое решение:
db.collection.update(
{ id: "1" },
{
$set: {
"invoices.0": { id: "1", balance: 0 }
}
}
)
Что делает это решение?
- Он принимает документ с идентификатором 1. Это ваш первый документ.
- Оператор $ set заменяет значение поля указанным значением.(прямо из руководства MongoDB - Руководство MongoDB - оператор $ set ).
- "invoices.0" получает первый счет из массива invoices, а затемобновляет баланс до 100.
- Замените коллекцию слов из db.collection именем вашей коллекции.
Попробуйте и посмотрите, работает ли он.Если нет, я бы хотел, чтобы кто-то с большим опытом поправил меня.
LE: Теперь это работает, попробуйте и посмотрите.