我有一个应用程序,使用MongoDB的c#驱动程序将Upserts转换为MongoDB数据库。当我调用Update
函数时,我无法指定要更新的类型,然后插入了带有元素类型的_t
字段。
这是我用来upsert的代码:
collection.Update(
Query.EQ("key", item.Key),
Update.Replace(item),
UpdateFlags.Upsert
);
结果如下:
当我进行初始插入时,这不会发生,因为我可以指定类型。
如何在不插入_t
字段的情况下制作Upsert?
[编辑]这是我用于插入的代码:
collection.InsertBatch(ItemType, items);
答案 0 :(得分:4)
您可以在 Update.Replace 方法中传递 ItemType :
collection.Update(
Query.EQ("key", item.Key),
Update.Replace(ItemType, item),
UpdateFlags.Upsert
);
答案 1 :(得分:0)
我找到了解决此问题的方法。在我的C#模型中,我提到了一个名为“ BsonDiscriminator”的属性,这会导致我的问题。