Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
MongoDB$regex,带$in子句_Mongodb_Vert.x - Fatal编程技术网

MongoDB$regex,带$in子句

MongoDB$regex,带$in子句,mongodb,vert.x,Mongodb,Vert.x,我需要一个mongodb查询,比如 db.getCollection("xyz").find({"_id" : {$regex : {$in : [xxxx/*]}}}) 我的用例是——我有一个字符串列表,比如 [xyz/12/poi, abc/98/mnb, ytn/65/tdx, ...] 集合(测试)中的ID类似于 xyz/12/poi/2019061304. 我将从输入列表中获取类似于xyz/12/poi的值,id的另一部分是yyyymmddhh格式 因此,我需要转到集合,并找

我需要一个mongodb查询,比如

db.getCollection("xyz").find({"_id" :  {$regex : {$in : [xxxx/*]}}})
我的用例是——我有一个字符串列表,比如

[xyz/12/poi, abc/98/mnb, ytn/65/tdx, ...]
集合(测试)中的ID类似于

xyz/12/poi/2019061304. 
我将从输入列表中获取类似于
xyz/12/poi
的值,id的另一部分是
yyyymmddhh
格式

因此,我需要转到集合,并找到所有与输入列表匹配的文档以及测试集合中文档的ID

我可以单独检索文档,但这似乎不是一个可行的选择,因为输入列表的大小超过10000

你们能提出一个更可行的解决方案吗。提前谢谢

我尝试将$in与$regex一起使用。但mongodb似乎不支持这一点。我也尝试过模式匹配,但即使这样对我来说也不可行。您能否建议在mongodb中使用$in和$regex的替代方案


预期的结果可能是一个加积查询/一个普通查询,这样我们只需点击一次数据库,就可以得到所需的输出,而不是点击数据库10000多次。

对不起,我不确定我是否理解您的意思。您想将$regex与一组不同的regex一起使用,所以您说过要使用$in,对吗?我想将$regex用于输入列表$正则表达式只适用于json对象中的单个元素,但我有一个输入列表,对于每个输入,我都需要使用正则表达式?例如,如果输入中的值是“a”和“b”,那么查询将是
db.getCollection(“xyz”).find({“\u id”:{$regex:/a | b/}})
对不起,我刚刚注意到您想在
\u id
上使用
$regex
,我认为这是不可能的。
\u id
字段不是字符串,它是一个
ObjectId
。很抱歉,我不确定我是否理解您的意思。您想将$regex与一组不同的regex一起使用,所以您说过要使用$in,对吗?我想将$regex用于输入列表$正则表达式只适用于json对象中的单个元素,但我有一个输入列表,对于每个输入,我都需要使用正则表达式?例如,如果输入中的值是“a”和“b”,那么查询将是
db.getCollection(“xyz”).find({“\u id”:{$regex:/a | b/}})
对不起,我刚刚注意到您想在
\u id
上使用
$regex
,我认为这是不可能的。
\u id
字段不是字符串,而是
ObjectId