2014-06-05 124 views
2

通常情況下,您將使用以下操作從集合中刪除字段。但是,下面的代碼不適用於空("")字段。你將如何去刪除MongoDB中的空字段?從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

您如何在您的問題中定義「空白字段」?你能編輯你的問題來提供一個例子嗎? – JohnnyHK

+0

關鍵是字面意思「」 – Jonathan

+0

有趣......我甚至不知道這是可能的。 – JohnnyHK

回答

1

它看起來像空字符串鍵只能由MongoDB的部分支持。

這是不是作爲一個多次更新的效率,但它的工作,除去殼這些領域:

db.collection.find().forEach(function(doc) { 
    delete doc['']; 
    db.collection.save(doc); 
}); 
1

爲此使用更新updateMany方法做,你必須指定要更新的參數,如name

db.collection.updateMany({name: ""}, { $unset : { name : 1 }})