[英]How to update document in Mongodb collection with a field value from another collection
[英]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.