以下のコードは、値が実際には既存のドキュメントに保存されないことを除いて機能しているようです。
MongoServer mongo = MongoServer.Create();
mongo.Connect();
var db = mongo.GetDatabase("forms");
mongo.RequestStart(db);
var collection = db.GetCollection("forms");
var query = new QueryDocument("_id",ObjectId.Parse(Id));
var resultsCursor = collection.Find(query);
foreach (BsonDocument item in resultsCursor)
{
var formFields = new BsonArray();
formFields.Add(new BsonDocument
{
{"ID", ObjectId.GenerateNewId()},
{"NAME",name},
{"TYPE",type}
}
);
collection.Save(item.Add("fields",formFields));
これは、保存の直後に getlasterror が実行された結果であるため、機能すると言います。
db.GetLastError()
{MongoDB.Driver.GetLastErrorResult}
base {MongoDB.Driver.CommandResult}: {MongoDB.Driver.GetLastErrorResult}
DocumentsAffected: 1
HasLastErrorMessage: false
LastErrorMessage: null
UpdatedExisting: true
私は何かが欠けています(おそらく単純なもの...)。ご協力ありがとうございます。