Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex MongoDb未在查询说明符中注册字段_Regex_Mongodb - Fatal编程技术网

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

Regex MongoDb未在查询说明符中注册字段,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.$)

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

为什么在使用regex时没有注册实际指定了相应的字段?

这似乎是mongodb中的一个错误,之前也在这里得到了回答:

这样修改查询会得到预期的结果:

db.Category.find({"Children.Url" : {$in : [/myurl/i]}}, {"Children.$" : 1})
这是一个众所周知的问题。解决办法是:

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