c# - MongoDB .NET Core:使用 BulkWrite 找不到数组过滤器
问题描述
我正在尝试使用带有 mongodb c# 驱动程序的 BulkWrite 执行许多更新。我有以下代码。我收到错误“在路径 'PartialTemplates.$[template]._id' 中找不到标识符 'template' 的数组过滤器”
var collection = data.Database.GetCollection<BsonDocument>("TemplateCollection");
var filter1 = Builders<BsonDocument>.Filter.In("_id", _ids1);
var filter2 = Builders<BsonDocument>.Filter.In("_id", _ids2);
var filter3 = Builders<BsonDocument>.Filter.In("_id", _ids3);
var id1Update = Builders<BsonDocument>.Update
.Set("PartialTemplates.$[template]._id", _id1);
var id2Update = Builders<BsonDocument>.Update
.Set("PartialTemplates.$[template]._id", _id2);
var id3Update = Builders<BsonDocument>.Update
.Set("PartialTemplates.$[template]._id", _id3);
var arrayFilters = new List<ArrayFilterDefinition>
{
new BsonDocumentArrayFilterDefinition<BsonDocument>(new BsonDocument("template.Type.Key", "TemplateType")),
};
var updateManies = new List<UpdateManyModel<BsonDocument>>
{
new UpdateManyModel<BsonDocument>(filter1, id1Update)
{
ArrayFilters = arrayFilters
},
new UpdateManyModel<BsonDocument>(filter2, id2Update)
{
ArrayFilters = arrayFilters
},
new UpdateManyModel<BsonDocument>(filter3, id3Update)
{
ArrayFilters = arrayFilters
}
};
var result = await collection.BulkWriteAsync(updateManies);
其中一份文件看起来像这样
new BsonDocument
{
["_id"] = Guid.Parse("6da07681-bd40-4fad-8c69-221e186ee6ae"),
["PartialTemplates"] = new BsonArray
{
new BsonDocument
{
["_id"] = Guid.Parse("0fcb486b-2b30-481e-b44f-388481a9efe1"),
["Type"] = new BsonDocument
{
["Key"] = "TemplateType"
}
},
new BsonDocument
{
["_id"] = Guid.Parse("0fcb486b-2b30-481e-b44f-388481a9efe1"),
["Type"] = new BsonDocument
{
["Key"] = "WrongKey"
}
}
}
}
为什么这不起作用?
解决方案
推荐阅读
- c++ - 在 Windows 10 上构建 Vivek 的虚拟摄像头时出现链接器错误?
- minimax - Minimax 和 Negamax 有什么区别?
- django - Django API 问题试图创建一种从另一个表中添加查找数据的方法
- php - 用循环和键名合并两个数组
- node.js - 无法将 MongoDB 连接字符串正确定义为 Travis CI 环境变量
- django - 如何为 django-filter 生成的元素设置 CSS 类?
- flutter - 如何使用颤振从谷歌驱动器获取所有视频文件?
- intellij-idea - 关闭项目后 IntelliJ 内容根目录重置
- android - 颤振位置
- python - 如何找到使用 Pandas 最频繁和最不频繁的计数?