9
.NETドライバを使用してMongoDB 2.4.4に文書をアップしようとしています。プレーン・インサートで_id
が正しく生成されますが、アップ・サートでは_id
が自動的に生成されないようです。ドライバで_id
を正しく生成させるにはどうすればよいですか?MongoDB .NETがupsertで_idを生成しない
ここに、問題を示す小さな例があります。
public class MongoObject
{
[BsonId(IdGenerator = typeof(StringObjectIdGenerator))]
[BsonRepresentation(BsonType.ObjectId)]
public string MongoID { get; set; }
public int Index { get; set; }
}
var obj = new MongoObject()
{
Index = 1
};
//This inserts the document, but with a _id set to Null
_collection.Update(Query.EQ("Index", BsonValue.Create(1)), Update.Replace(obj), UpdateFlags.Upsert, new WriteConcern() { Journal = true });
//This inserts the document with the expected autogenerated _id
//_collection.Insert(obj);
私はdownvoteが何であったか興味がありますか?誰かがちょうど私が自分自身に答えた2つの他の質問を通過してdownvotedので、私はそれが実際にStackOverflowの完全にサポートされている機能であることを指摘します。 「Ask a question」フォームには、「あなた自身の質問に答える - あなたの知識のQ&Aスタイルを共有する」チェックボックスもあります。 –
カルマが復元されました。これは有益な質問で有益な答えです。 – RobD
Ha、ありがとう@RobD :) –