2015-09-19 2 views
1

Я пытаюсь найти лучшую командную строку, чтобы найти все документы в моей коллекции, которые соответствуют моим параметрам запроса, а затем добавить поле "descriptions_id":"navy-blue" к каждому из этих документов. В основном я только что создал коллекцию под названием descriptions, которую я сейчас хочу сослаться во всех моих документах в моей коллекции images. Я использую db.images.find({ color: "navy-blue" }), который берет все мои документы правильно, но теперь я хочу обновить эти документы и добавить в descriptions_id: "navy-blue". Запустить команду update, чтобы добавить это поле ко всем этим документам? Похоже, из документации это не так.MongoDB Поиск всех документов из запроса и добавление поля

ответ

0

Команда update принимает объект запроса, чтобы определить, какие документы необходимо обновить. Включите опцию {multi: true}, чтобы применить обновление к всем сопоставленным документам, а не только первым.

db.images.update(
    {color: "navy-blue"}, 
    {$set: {descriptions_id: "navy-blue"}}, 
    {multi: true}) 
0

Вы также можете использовать операции bulk find and update. Это будет полезно, если вы хотите обновить большое количество документов. Запрос будет следующим:

var bulk = db.images.initializeUnorderedBulkOp(); 
bulk.find({ color: "navy-blue" }).update({$set: {descriptions_id: "navy-blue"}}); 
bulk.execute(); 
Смежные вопросы