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

时间:2015-02-13 19:59:43

标签: c# mongodb

我正在尝试将文档插入MongoDB,但我想只有独特的文档,每当遇到重复的文档时,如果它已经存在则忽略它并转到下一个文档。我使用以下代码,但显然它不起作用。

var keys = IndexKeys.Ascending("TrackingNumber");
var options = IndexOptions.SetUnique(true).SetDropDups(true);
_collection.CreateIndex(keys, options);`

1 个答案:

答案 0 :(得分:2)

如果你真的想忽略这些,那么最好在代码中执行它,尽管在多客户端环境中这可能不那么容易。

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

更好的方法,虽然不完全是您正在寻找的行为,但是使用upserts,即如果尚未存在则插入文档的操作,如果之前存在搜索的文档,则更新它。这具有幂等操作的优点(忽略策略不是)。