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" } }
)