整数的MongoDB$regex

整数的MongoDB$regex,regex,mongodb,mongodb-query,Regex,Mongodb,Mongodb Query,因此,我试图在查询参数中使用$regex name[$regex]="^b" 这将返回以b开始的bob、bake、bowen等 但是,当我在类似整数的列上使用正则表达式时 id[$regex]="^1" 它不会返回1,11,12,13。。。等,即使它们存在于数据库中。那么,为什么$regex在整数中失败,还有什么替代方法呢MongoDB$regex运算符只能用于字符串值。看这上面的图片 作为一种简单的解决方法,请使用$where运算符测试整数: db.example.find({ $wher

因此,我试图在查询参数中使用
$regex

name[$regex]="^b"
这将返回以
b开始的bob、bake、bowen等

但是,当我在类似整数的列上使用正则表达式时

id[$regex]="^1"

它不会返回1,11,12,13。。。等,即使它们存在于数据库中。那么,为什么
$regex
在整数中失败,还有什么替代方法呢MongoDB
$regex
运算符只能用于字符串值。看这上面的图片

作为一种简单的解决方法,请使用
$where
运算符测试整数:

db.example.find({ $where: "/^1/.test(this.id)" })

$where
字符串中,可以使用
this
引用当前文档。因此,在您的情况下,
这个.id
是您想要的
id
字段。

直到现在都不可能。那么,除了$regex之外,有没有可能实现相同的功能@如果您使用mongodb 4.0将整数转换为字符串,然后使用
$regex
或如果您使用mongodb 4.0之前的版本,请使用
$toString
聚合。就这样