下面的代码似乎有效,只是这些值并未实际保存到现有文档中。
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
我错过了一些东西(可能是一些简单的东西......)。感谢您提供任何帮助。