繁体   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