通常,您将使用以下内容从集合中删除字段。但是,下面的代码不适用于空(""
)字段。你会如何删除MongoDB中的空字段?
db.collection.update({}, {$unset: {"": ""}}, {multi:true})
我在尝试此操作时收到以下错误消息:
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 56,
"errmsg" : "An empty update path is not valid."
}
})
答案 0 :(得分:2)
看起来像MongoDB只能部分支持空字符串键。
这不如多次更新有效,但它确实可以删除shell中的那些字段:
db.collection.find().forEach(function(doc) {
delete doc[''];
db.collection.save(doc);
});
答案 1 :(得分:1)
要使用更新或 updateMany 方法执行此操作,您必须指定要更新的参数,例如name
:
db.collection.updateMany({name: ""}, { $unset : { name : 1 }})
答案 2 :(得分:0)
如果您需要删除该字段为空的行,则可以使用:
TestObject.INSTANCE.getName()