我很难弄清楚这个问题。
我正在尝试发布一个集合级别更新,该更新基本上用一个数字更新所有匹配的记录,例如:
# I actually am using PHP driver but using the console has the same result
db.my_collection.update( {si: '647522529'}, {$set: {cl:'2'}} );
上面应该找到所有 si='647522529' 的记录,然后更新 cl='2'。
问题是上面的命令没有给出任何类型的错误或警告,所以看起来它执行正确,但是当我在“cl”键上运行一个不同的命令时,它给出了混合的结果(2/1):
> db.runCommand( { distinct: 'my_collection', key: 'cl', query: { si: '647522529' } } )
{
"values" : [
"2",
"1"
],
"stats" : {
"n" : 113,
"nscanned" : 113,
"nscannedObjects" : 113,
"timems" : 1,
"cursor" : "BtreeCursor si_1"
},
"ok" : 1
}
我做错了什么吗?我试过重新索引数据库,但也没有任何效果。
任何帮助将非常感激!