別のドキュメント内の埋め込み配列を更新するために使用しているクエリがあります。同じクエリに基づいてさまざまなアプローチを試みましたが、2 つの異なる結果が得られました
最初のアプローチ
collection.Update(mongoQuery, MongoDB.Driver.Builders.Update.SetWrapped("Expenses.$.Description", "some text"));
ここでは、Expenses コレクションに埋め込まれたドキュメントの説明が期待どおりに更新されます。
C# API をもう少し読んで、一般的な Update を見つけて、これを試しました。
collection.Update(mongoQuery, Update<Expense>.Set(e => e.Description, "some text"));
同じ結果ではありません。埋め込まれたドキュメントを更新する代わりに、親ドキュメントは Description という名前の新しいプロパティを取得します。
最初のクエリでは、"Expenses" コレクションについてより明示的であることがわかります。2 番目のクエリでは、タイプ Expense を指定しているだけです。一般的な方法で同じ更新を行うことは可能ですか?