Om namnfältet inte finns där, försök:
db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})
$set
kommer att lägga till ett nytt fält med det angivna värdet, förutsatt att det nya fältet inte bryter mot en typbegränsning.
Om det finns där och null, eller inte har ett värde inställt:
db.collection.update({"name": null}, {"$set": {"name": "test"}})
Du kan kombinera båda frågorna med $or
som
db.collection.update(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)
För MongoDB 3.2 och senare, använd >updateMany()
som uppdaterar flera dokument inom samlingen baserat på filtret:
db.collection.updateMany(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)