regex - 检查您的 elemMatch 正则表达式条件是否有效
问题描述
我有一个 MongoDB 查询:
db.list.find({categories:{$elemMatch:{ "$regex":".*Bar.*", $not:/^Barbeque/}}}).pretty()
它查看类别数组中的元素,我认为获取所有文档,其中有一个包含“Bar”但没有包含“Barbecue”的元素。如何检查以确保我的查询是正确的?
让我知道我的查询是否错误以及如何解决。
解决方案
您应该像这样指定字符串的结尾:
$not:/^Barbeque$/
而不是
$not:/^Barbeque/
因为如果任何文件包含(即“烧烤”),它必须返回到您的查询结果。
关于确保我的查询是否正确,我不知道。但是如果您的查询是正确的,mongo 必须返回与书面查询匹配的值。
如果出现问题,一定是查询中导致 mongo 的逻辑为您返回了意外的值。
所以在你运行它之前检查你的查询。:D
推荐阅读
- xslt - xpath“元素()”记录在哪里?
- sql - SQL 获取两次之间的值
- automation - 如何在 Automation Anywhere Enterprise Client 中停止正在运行的任务?
- solr - 如何在 solr 中搜索时忽略点和其他字符
- mysql - sql获取中间记录
- react-native - 使用 URI 反应原生图像未在设备上显示
- excel - 运行时错误 438 消息确定 LastRow
- bash - cURL 从文件中读取 URL - 进程休眠
- django - 在 django 中验证上传文件
- c# - .Net jQuery WYSIWYG 隐藏在 AJAX 回发上