0

元に戻す/やり直しコマンドのリストを維持するために、findAndModify コマンドを使用しています。「フィールド」タグを使用して、「前」の値を指定しています。これは、元に戻すコマンドを構築するために使用されます。すなわち:

コマンド:

{
    findAndModify : "aaa",
    query : { _id: ObjectId('5215f7d1fe789bb17427bde9') },
    update : { "$set" : { "v1" : 200 } },
    fields : {  v1 : 1, _id : 0 }
}

ビルド結果:

"Do" : { "$set" : { "v1" : 200 } },
"Undo" : { "$set" : { v1" : 100 } }

ただし、配列に対してこれを機能させることはできません。次のような set コマンドを実行します。

{ $set : "myArrayVar.3" : 100 }

私は次のような投影を使用してみました:

{ "myArrayVar.3" : 1 }
{ "myArrayVar.$" : 1 }

ただし、どちらも空の配列ブレースのみを返します。

{ myArrayVar : [] }

私は何が欠けていますか?

4

1 に答える 1

0

プロジェクションで数値配列インデックスを使用することはできませんが、$slice代わりに使用できます。

fields: { myArrayVar: { $slice: [2, 1] } }

これには、3 番目の要素 (スキップ 2、テイク 1) だけが含まれます。

于 2013-09-10T13:00:32.807 に答える