我正在使用 findAndModify 命令来维护撤消/重做命令的列表。我正在使用“字段”标签来指定“之前”值是什么。然后将其用于构建撤消命令。IE:
命令:
{
findAndModify : "aaa",
query : { _id: ObjectId('5215f7d1fe789bb17427bde9') },
update : { "$set" : { "v1" : 200 } },
fields : { v1 : 1, _id : 0 }
}
构建结果:
"Do" : { "$set" : { "v1" : 200 } },
"Undo" : { "$set" : { v1" : 100 } }
但是,我不能使这项工作适用于数组。我做了这样的设置命令:
{ $set : "myArrayVar.3" : 100 }
我尝试过使用如下投影:
{ "myArrayVar.3" : 1 }
{ "myArrayVar.$" : 1 }
但两者都只返回空数组大括号:
{ myArrayVar : [] }
我错过了什么?