regex - MongoDb 未在查询说明符中注册字段

标签 regex mongodb

我正在查询 mongodb 集合并且仅检索如下子文档:

db.Category.find({"Children.Url" : "www.myurl.com"}, {"Children.$" : 1})

但是当尝试使用正则表达式运行类似的查询时:

db.Category.find({"Children.Url" : /myurl/i}, {"Children.$" : 1})

我收到此错误:

error: {
"$err" : "positional operator (Children.$) requires corresponding field in query specifier",
"code" : 16352
}

为什么使用正则表达式时没有注册实际指定的相应字段?

最佳答案

这是已知的Jira SERVER-9028问题。解决方法是:

db.Category.find({"Children": {$elemMatch: {Url: /myurl/i}}}, {"Children.$": 1})

关于regex - MongoDb 未在查询说明符中注册字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28995690/

相关文章:

mongodb - 在 mongo 中设置单个位,以存储位掩码

ruby - 如何为模型获取新的 mongoid 索引

java - 使用java仅检索MongoDB中对象数组中的查询元素

php - 正则表达式的 html

php - 通过 .htaccess 将额外的 get 变量附加到 URL

regex - 如果一行以某个字符开头,则删除之前的换行符

mysql - 如何在mysql中提取数据的第一个数字?

Java 正则表达式不工作 - 为什么?

mysql - 如何每隔一小时自动将Mongodb数据导出到Mysql?

node.js - 使用 Mongoose、node 和 graphql 防止控制台错误