MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongo met à jour tous les enregistrements avec un champ nul

Si le champ du nom n'y figure pas, essayez :

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

$set ajoutera un nouveau champ avec la valeur spécifiée, à condition que le nouveau champ ne viole pas une contrainte de type.

S'il est présent et nul, ou s'il n'a pas de valeur définie :

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

Vous pouvez combiner les deux requêtes en utilisant $or comme

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

Pour MongoDB 3.2 et supérieur, utilisez updateMany() qui met à jour plusieurs documents au sein de la collection en fonction du filtre :

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