我正在查询 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/