【发布时间】:2018-10-26 20:49:05
【问题描述】:
我想使用 bulkWrite() 运行多个 upsert 查询。但问题是,bulkWrite 只返回插入的_ids 而不是更新的_ids。我怎样才能得到所有 _ids 在这个查询中?
var insertCommand = Builders<myObject>.Update.SetOnInsert(d => d.Name, object.Name).SetOnInsert(d => d.Age, object.Age);
var updateCommand = Builders<myObject>.Update.Set(d => d.LastRequest, object.DateTime);
var updateQueries = Builders<myObject>.Update.Combine(new[] { updateCommand, insertCommand });
var filter = Builders<myObject>.Filter;
var findQuery = filter.And(filter.Eq(e => e.Name, object.Name), filter.Eq(e => e.City, object.City));
var upsertObject = new UpdateOneModel<myObject>(findQuery, updateQueries) { IsUpsert = true };
bulkOps.Add(upsertObject);
var result = await Collection.BulkWriteAsync(bulkOps);
【问题讨论】:
-
您是否从 bulkWrite 响应中获得了修改文档的 ID?
标签: c# mongodb mongodb-query