sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongo opdaterer alle poster med et felt, der er null

Hvis navnefeltet ikke er der, prøv:

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

$set vil tilføje et nyt felt med den angivne værdi, forudsat at det nye felt ikke overtræder en type begrænsning.

Hvis det er der og null, eller ikke har en værdisæt:

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

Du kan kombinere begge forespørgsler ved hjælp af $or som

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

For MongoDB 3.2 og nyere, brug updateMany() som opdaterer flere dokumenter i samlingen baseret på filteret:

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


  1. MongoEngine:EmbeddedDocument v/s. Referencefelt

  2. Når MongoDB indsætter en dato, konverterer den den til UTC

  3. Sådan indstilles hash-nøgleudløb i redis i henhold til eksistensen af ​​nøglen

  4. Unicode i python