我如何防止" _t" Upserting到MongoDB时出现的字段?

时间:2014-06-13 07:26:42

标签: c# mongodb

我有一个应用程序,使用MongoDB的c#驱动程序将Upserts转换为MongoDB数据库。当我调用Update函数时,我无法指定要更新的类型,然后插入了带有元素类型的_t字段。

这是我用来upsert的代码:

collection.Update(
    Query.EQ("key", item.Key),
    Update.Replace(item),
    UpdateFlags.Upsert
);

结果如下:

mongodbscreenshot

当我进行初始插入时,这不会发生,因为我可以指定类型。

如何在不插入_t字段的情况下制作Upsert?

[编辑]这是我用于插入的代码:

collection.InsertBatch(ItemType, items);

2 个答案:

答案 0 :(得分:4)

您可以在 Update.Replace 方法中传递 ItemType

collection.Update(
    Query.EQ("key", item.Key),
    Update.Replace(ItemType, item),
    UpdateFlags.Upsert
);

答案 1 :(得分:0)

我找到了解决此问题的方法。在我的C#模型中,我提到了一个名为“ BsonDiscriminator”的属性,这会导致我的问题。

for more details