multiply '-1'
で機能しない理由 位置演算子
と同じであるため $
。「ネストされた配列」というテーマの公式ドキュメントでは、次に見ることができます:
MongoDb 3.6から ネストされた配列を操作できる新機能があります。
したがって、フィルター処理された位置演算子を使用すると、私のコードは次のようになります。
await coll.UpdateOneAsync(x => x.StoreGuid == storeGuid,
Builders<StoreModel>.Update.Set("configGroup.$[g].config.$[c].value", model.Value),
new UpdateOptions
{
ArrayFilters = new List<ArrayFilterDefinition>
{
new BsonDocumentArrayFilterDefinition<BsonDocument>(new BsonDocument("g.groupName", groupName)),
new BsonDocumentArrayFilterDefinition<BsonDocument>(new BsonDocument("c.key", model.Key))
}
});