簡體   English   中英

如何在更新時從mongodb集合中刪除字段?

[英]How to remove a field from mongodb collection on update?

我知道如何從集合中刪除字段:

db.example.update({},{$unset: {field_to_del:1}},false,true)

但是我想在更新文檔時刪除長度為零的所有文檔字段。

我認為您可以采用以下兩種方法之一:

1)在您的應用程序中知道哪些字段已被刪除,並像在問題中一樣在更新時將其刪除。

2)將其編寫為批處理作業。 這可能滿足您的需要:強制刪除集合中任何文檔中的任何空字段(即,空字符串值)(在這種情況下為集合“ so”)

var updateEmptyField = function(o){ 
   for (var f in o){ 
      if (o[f] === ''){ 
         eval ("db.so.update({},{$unset: {" + f + ":1}},false,true);");
      }
   }
}

db.so.find().forEach(updateEmptyField);

您需要在此處使用eval來使用包含字段名稱的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM