以下のコードは機能しますが、最後の2行は "ハッキー"です。これは私がこれまでに動作するように得ている唯一のものです:MongoDb CSharpのFindAndModifyのModifiedDocumentをキャストしない
var collection = _database.GetCollection<KeyValueDocument>(KeyValueDocumentCollectionName);
var query = Query.And(Query.EQ("KeyName", keyName));
var sortBy = SortBy.Ascending("KeyName");
var update = Update.Inc("KeyValue", adjustmentAmount);
var result = collection.FindAndModify(query, sortBy, update, true);
var newValue = result.ModifiedDocument.Elements.Last().Value;
return Int32.Parse(newValue.RawValue.ToString());
問題は、私は戻って正しくresult.ModifiedDocumentをキャストすることができないんだということである「KeyValueDocument。」
デバッグ時に、正しい値でKeyValueDocumentの3つのプロパティがすべて存在することがわかります。そして、私は "Elements"コレクションを見ることができます。最後には増分されたプロパティがあります。 ToStringの "RawValue"プロパティに落ち、Intに解析されます。すごい!
しかし、もっと良い方法があるはずです。私はC#と公式の10genドライバを使用しています。
ありがとうございました。 トラヴィス
感謝を!その方法を完全に逃した。 –