2016-01-12 2 views
0

Возможно ли обновить несколько объектов (не все из них), но с той же переменной?Как обновить несколько объектов, но с теми же данными в MongoDB?

Я хочу обновить несколько объектов, но с одним и тем же набором данных, могу ли я сделать это, используя только один запрос?

db.getCollection('my.data').update({ "_id": ObjectId("52e637fca92cf1ec6a73c1e8") }, 
    { 
     "$set": { 
      "var1": 2, 
      "var2": 3, 
      "var3": 4 
     } 
    } 
)  

ответ

1

Вы можете обновить все документы, соответствующие вашему запросу, добавляя третий параметр к вашему вызову обновление:

db.getCollection('my.data').update(
    { 
     "field": "that matches documents to update" 
    }, 
    { 
     "$set": { 
      "var1": 2, 
      "var2": 3, 
      "var3": 4 
     } 
    }, 
    { 
     multi: true 
    } 
); 

Это предполагает, конечно, что ваш запрос соответствует только те документы, которые вы хотите обновить.

Вы можете узнать больше об операторе обновления here

+2

Вы также можете обновить конкретные документы, изменив параметр запроса, чтобы быть '{_id: {$ в: [ObjectId ("doc1"), ObjectId ("doc2"), ...]}} ', если вы знаете, какие конкретные документы вы хотите обновить! – solocommand

Смежные вопросы