如何更新所有单个字段设置为"null"或根本没有值的Mongo文档?
我有什么,但我不确定它是否正确:
db.collection.update({name: {$eq: null}}, {$set: {name: 'test'}})
Run Code Online (Sandbox Code Playgroud)
chr*_*dam 14
如果名称字段不存在,请尝试:
db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})
Run Code Online (Sandbox Code Playgroud)
$set 将添加具有指定值的新字段,前提是新字段不违反类型约束.
如果它在那里并且为null,或者没有设置值:
db.collection.update({"name": null}, {"$set": {"name": "test"}})
Run Code Online (Sandbox Code Playgroud)
您可以使用$oras 组合两个查询
db.collection.update(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)
Run Code Online (Sandbox Code Playgroud)
对于MongoDB 3.2及更高版本,使用updateMany()它根据过滤器更新集合中的多个文档:
db.collection.updateMany(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8786 次 |
| 最近记录: |