Я пытаюсь вставить поле в каждый документ коллекции, если это поле не существует раньше. Для этого я пытаюсь:Как вставить поле во все документы, если оно не существует
db.people.update(
{ city.postcode: "" },
{
city.postcode: "W1"
},
{ multi: true }
)
Но к сожалению, к сожалению, это не работает; любой намек, пожалуйста?
UPDATE:
Документация здесь: http://docs.mongodb.org/manual/reference/method/db.collection.update/
Этот файл работает: db.order.update ( {$ and: [{'city.postcode': {$ exists: false}}]}, {$ set: {'city.postcode': 'W1'} }, {multi: true}) Он очень похож на ваш, так что я думаю, что ваш тоже работает, и я буду отмечать его как правильный. Однако я разбиваю еще одну коллекцию (я ошибочно выполнил этот запрос над ними). Вы знаете, как я могу ее вернуть? –
@stackpepe вы не можете вернуть его, если он обновлен. Но вы можете снова обновить его, чтобы удалить ранее обновленное поле. Если обновленная коллекция ранее не содержала 'city.pincode', то просто [$ unset] (https://docs.mongodb.org/manual/reference/operator/update/unset/) поле' city.postcode' – Vishwas
Также вы делаете не нужно '$ и' в запросе выше. – Vishwas