c# - 按数组字符串的元素查找记录
问题描述
我试图通过特定的数组元素(蓝色下划线)查找集合中的所有记录:
这是我的代码:
FilterDefinition<string> queryTemplate = Builders<string>.Filter.Eq(pr => pr, templateId);
return Database.GetCollection<AutoSave>(MongoDb.AutoSaveCollection)
.Find(Builders<AutoSave>.Filter.ElemMatch(x => x.Templates, queryTemplate)).ToList();
但它不起作用。
解决方案
试试下面的过滤器:
var filter = Builders<AutoSave>.Filter.Where(s => s.Templates.Contains(templateId));
var result = collection.Find(filter).ToList();
这是一个测试程序
推荐阅读
- java - 为什么导致@Cacheable 内部的条件没有任何影响?
- rest - 用于完成 camunda 用户任务和更新外部数据库的数据一致性
- flutter - 无法从 TextField onChanged 方法更新状态
- powershell - 我应该将 ScriptBlock 放在 foreach 循环中吗?
- python - 如何调用与主文件相同的类函数?(属性错误)
- node.js - 如何使用 Socket.io 创建国际象棋时钟
- sql - SUM() Over(Partition By) 产生与预期不同的值
- css - 在不同的路线上为组件使用不同的样式?根据路线隐藏和显示数据
- django - 由 django 生成的 Postgresql 查询工作太慢
- jenkins - Jenkins 管道无法克隆 Bitbucket 存储库