Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文档插入MongoDB并忽略重复的文档_C#_Mongodb - Fatal编程技术网

C# 将文档插入MongoDB并忽略重复的文档

C# 将文档插入MongoDB并忽略重复的文档,c#,mongodb,C#,Mongodb,我正在尝试将文档插入MongoDB,但我希望只有唯一的文档,每当遇到重复的文档时,只要忽略它(如果它已经存在),然后转到下一个文档。我正在使用下面的代码,但显然它不起作用 var keys = IndexKeys.Ascending("TrackingNumber"); var options = IndexOptions.SetUnique(true).SetDropDups(true); _collection.CreateIndex(keys, options);` 如果您真的想忽略这些

我正在尝试将文档插入MongoDB,但我希望只有唯一的文档,每当遇到重复的文档时,只要忽略它(如果它已经存在),然后转到下一个文档。我正在使用下面的代码,但显然它不起作用

var keys = IndexKeys.Ascending("TrackingNumber");
var options = IndexOptions.SetUnique(true).SetDropDups(true);
_collection.CreateIndex(keys, options);`
如果您真的想忽略这些,最好是在代码中完成,尽管在多客户端环境中这可能不是那么容易

dropDups
标志只是索引创建的一个参数,因此它将删除在创建索引时找到的重复项。对于以后的插入,该标志将被忽略,因为它甚至不是索引的参数


一种更好的方法(虽然不是您想要的行为)是使用,即,如果文档尚未出现,则插入文档,如果搜索的文档以前存在,则更新文档。这具有幂等运算的优点(忽略策略不是这样)。

但是c#不支持upsert。是吗?当然支持。C#驱动程序支持所有MongoDB功能。甚至还有一个助手方法Save(),请看我正在读取一个CSV文件并在文档上解析它。在我的情况下,如何使用upsert?为什么要从csv读取BSON?为什么不使用一个类呢?您仍然可以使用upsert和
BsonDocument
。我需要解析一个CSV文件并在MongoDB中插入一些列