我正在尝试通过删除user
内的所有数组元素来更新某些文档:
db.getCollection('units').find({"acctId": ObjectId('123')}).count()
返回3557条记录
db.getCollection('units').find({"accountId": ObjectId('123'), users: { $exists: true, $ne: [] } }).count()
返回710
但是!
db.getCollection('units').update({"accountId": ObjectId('123')}, { $set: { users: [] } }, { multi: true });
更新0条记录 find
查询和update
查询具有完全相同的查找条件,并且肯定有要更新的非空用户数组。并且查询成功运行,但是没有值被更新。
我肯定想念一些明显的东西吗?
答案 0 :(得分:0)
好的,我把它留给有同样问题的任何人。
我已连接到副本集上的次要mongo实例。那只允许我阅读。如果您在更新或删除记录时遇到问题,但是查找查询正常运行,则可能是只读权限问题,需要重新连接到副本集上的主要mongo实例。