MongoDB错误的部分更新

时间:2012-08-03 06:02:12

标签: mongodb partial mongodb-.net-driver

我正在尝试使用C#驱动程序对MongoDB中的某个文档进行部分更新。我已经关注了以下帖子:

How do you update multiple field using Update.Set in MongoDB using official c# driver?

Partial mongodb upsert using the c# driver?

尝试进行更新时出现以下错误:“当前只能映射类”,在AutoMapper CreateClassMap类中,收到的类型是System.Collections.Generic.IEnumerable`1 [[MongoDB.Bson.BsonElement ,MongoDB.Bson]],它不能是一个接口。

我正在使用的代码是:

public void UpdateObjectByFields<T>(int id, Dictionary<string, object> modifiedFields)
    where T : class
{
    var collection = m_MongoDatabase.GetCollection<T>();
    var builder = new UpdateBuilder();
    foreach (var modifiedField in modifiedFields)
    {
        builder.Set(modifiedField.Key, modifiedField.Value.ToString());
    }
    collection.Update(Query.EQ("_id", id), builder);
}

其中T类型是Mongo中的有效集合。

我做错了什么?

谢谢, 尼尔

1 个答案:

答案 0 :(得分:0)

让这个工作,显然我正在使用一些旧的dll作为C#驱动程序。 通过使用此处的dll修复它:

https://github.com/mongodb/mongo-csharp-driver/downloads

谢谢, 尼尔。