我在数据库中存储了一些需要定期重置的密钥。 它就像这样
{
name: "Bob",
limits:{
one: 1000
two: 14
three: 19
}
}
我查找了一个为对象内部的所有键赋值的查询,起初我认为$each
会对我有所帮助,但它的用途完全不同。
我想要的是将0
分配给limits
注意:来自limits
的密钥名称在用户之间不会保持不变,并且不会一直都知道。
与常规JS的Object.keys(limit).forEach(itm=> limit[itm]=0)
完全相同,但在Mongo的上下文中
答案 0 :(得分:0)
你已经过了一半:
您可以迭代集合并为每个光标文档应用forEach
方法
db.collection.find().forEach(function(d) {
Object.keys(d.limits).forEach(item=> d.limits[item]=0);
db.collection.save(d);
})
警告:这可能非常慢。