MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongo aktualizuje wszystkie rekordy za pomocą pola o wartości null

Jeśli nie ma pola nazwy, spróbuj:

db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})

$set doda nowe pole o określonej wartości, pod warunkiem, że nowe pole nie narusza ograniczenia typu.

Jeśli jest tam i null lub nie ma ustawionej wartości:

db.collection.update({"name": null}, {"$set": {"name": "test"}})

Możesz połączyć oba zapytania za pomocą $or jako

db.collection.update(
    {
        "$or": [
            { "name": { "$exists": false } }, 
            { "name": null }
        ]
    }, 
    { "$set": { "name": "test" } }
)

W przypadku MongoDB 3.2 i nowszych użyj updateMany() który aktualizuje wiele dokumentów w kolekcji na podstawie filtra:

db.collection.updateMany(
    {
        "$or": [
            { "name": { "$exists": false } }, 
            { "name": null }
        ]
    }, 
    { "$set": { "name": "test" } }
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb $rozwiń dla nieidealnego zagnieżdżonego dokumentu

  2. jak zaktualizować obiekt z kolekcji mLab za pomocą _id

  3. jak mogę połączyć się z mongodb z kodu Ruby?

  4. Programowa aktualizacja pól w Mongo i Meteor

  5. Dlaczego oprogramowanie pośredniczące nodejs-mongodb ma inną składnię niż powłoka mongo?