我正在尝试运行以下操作:
db[coll].update({'_id': "CNY.XX.X" },{ $unset: {"20201030": 1 }});
更新集合并删除字段:";20201030";从文档中,其工作并去除字段"0";20201030";,
现在,我想存储";20201030";在变量中,并在操作中使用它,但如果我运行:
id_val = "CNY.XX.X.";
date = "20201030";
db[coll].update({'_id': id_val },{ $unset: {date: 1 }});
这不起作用,因为字段";20201030";仍然存在。有人知道为什么吗?
不能将变量用作查询。
现在,我假设您使用的是Node.js(也许还有mongoose(,所以一种方法是创建一个新对象。
注意,$unset: {"20201030": 1 }
类似于$unset : object
,其中对象是{"20201030": 1 }
。所以你必须以这种方式创建这个对象:
var queryParam = {};
queryParam["20201030"] = 1;
db[coll].update({'_id': "CNY.XX.X"},{"$unset":queryParam})