c# - 无法通过查询定位 upsert :: 无法提取确切的分片键
问题描述
我设置了一个分片数据库并在集合上启用分片(EmailAddress as shardKey)。下面是我要插入集合的代码(仅在 EmailAddress 不存在时插入)
var con = MongoDBConnection.Connection;
var database = con.GetDatabase("MyDbName");
var collection = database.GetCollection<MyDbClass>("MyCollectionName");
var testFilter = new BsonDocument("EmailAddress", "abc@gmail.com");
var result = collection.UpdateOne(testFilter, Builders<MyDbClass>.Update
.SetOnInsert("Name", "John Doe")
.SetOnInsert("EmailAddress", "abc@gmail.com")
.SetOnInsert("City", "NY"), new UpdateOptions() { IsUpsert = true });
当我运行此代码时,它给了我这个错误“批量写入操作导致一个或多个错误。无法通过查询定位 upsert :: 无法提取确切的分片键”
任何帮助将不胜感激 !
解决方案
推荐阅读
- javascript - 无法导入火力基地
- c - 我可以在驻留在所述库中的函数中包含一个库吗?
- python - 如何使用python在文本文件中的列组合中查找具有重复值的行
- php - 在 Gmail 中收到任何邮件时在网络应用程序中显示通知
- gstreamer - 使用容器文件(MP4、MKV、...)添加文本覆盖
- ios - 在 OperationQueue 上运行 DataTask 时忽略 NSURLSession .waitsForConnectivity 标志
- python - 如何在pdf中插入.svg图片
- visual-studio - 如何查看使用不同项目设置重建项目的不同之处?
- scala - Spark Join 基于最近的日期
- django - 使用 django 和 firebase 进行电子邮件验证