MongoDB$regex,带$in子句
我需要一个mongodb查询,比如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格式 因此,我需要转到集合,并找
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
。