当然,这很简单。我无法弄清楚这一点。在 Mongo shell 中,我有以下命令:
db.getCollection("CollectionName")
.findAndModify({query: {"Property.0.Element": {"$type" : 1}},
update: {$set: {"Property.0.Element":""}}
})
如果我多次运行此命令,最终它会返回 null 并且我知道我已经更改了所有我想要更改的字段。但是,如果我运行:
for(j = 0; j < 50;j++) {
var loc = "Property."+j+".Element";
db.getCollection("ShelbyCoAssessorDeepStaging")
.findAndModify({query: {loc : {"$type" : 1}},
update: {$set: {loc:""}}
})
}
然后我返回了 null,但实际上没有任何值发生变化。为什么是这样?注意:我在 studio3T 的智能外壳中针对 3.6.6 版的 atlas 集群运行此程序。