sql >> Databáze >  >> NoSQL >> MongoDB

Mongo aktualizuje všechny záznamy polem, které je prázdné

Pokud tam pole pro název není, zkuste:

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

$set přidá nové pole se zadanou hodnotou za předpokladu, že nové pole neporušuje omezení typu.

Pokud je tam a má hodnotu null nebo nemá nastavenou hodnotu:

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

Oba dotazy můžete zkombinovat pomocí $or jako

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

Pro MongoDB 3.2 a vyšší použijte updateMany() který aktualizuje více dokumentů v rámci kolekce na základě filtru:

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


  1. Volitelné parametry vyhledávacího dotazu Mongoose?

  2. MongoDB:Problém při použití mongoexportu s volbou --query

  3. Node.JS čeká na nastavení proměnné

  4. Jak zálohovat vaši otevřenou databázi edX MongoDB