我从1.9迁移到了2.2和reading the documentation.我惊讶地发现,在批量操作期间,不可能再升级,因为操作不允许选项.

bulkOps.Add(new UpdateOneModel<BsonDocument>(filter, update));
collection.BulkWrite(bulkOps);

应该是

options.isUpsert = true;
bulkOps.Add(new UpdateOneModel<BsonDocument>(filter, update, options));
collection.BulkWrite(bulkOps);

这项工作正在进行中,是有意的,还是我遗漏了什么?非常感谢.

推荐答案

UpdateOneModelIsUpsert属性设置为true,将更新转换为upsert.

var upsertOne = new UpdateOneModel<BsonDocument>(filter, update) { IsUpsert = true };
bulkOps.Add(upsertOne);
collection.BulkWrite(bulkOps);

Mongodb相关问答推荐

MongoDB中的数据类型没有通过数据库Pyspark更改(从字符串到日期)

为什么AllowDiskUse不能在$GROUP阶段的聚合管道中工作?

在MongoDB中,如何使用$in来匹配存储在数组变量中的值

在MongoDB查询中添加来自另一个集合的匹配文档的计数

如何在MongoDB中查找和过滤嵌套数组

Mongo DB-如果一个特定字段有多个文档匹配,则更新文档字段

MongoDB shell:如何删除列表以外的所有集合

随着时间的推移在 mongodb 中获得

MongoDB 支持的最 Big Data 库数

如何在 2 个应用程序之间共享mongoose模型?

将 MongoDB BsonDocument 转换为字符串

mongoose中的 required是什么意思?

创建索引需要很长时间

如何将记录从一个 mongo 数据库插入另一个?

无法连接到mongolab主机

如何使用sailsjs v0.10连接mongodb?

Springboot 使用 find*() 查询时出现 Mongodb 错误

Mongoose.js 通过一个 connect() 调用创建到 MongoDB 的多个连接

NumberLong和简单整数之间的MongoDB区别?

使用 mongodb 在数组中查找子文档