[英]How to find $regex for integer value in mongodb?
我有以下收藏。
[{
_id: ObjectId("5b17ab5489264c2df61ed2d6"),
amount: 12514545
}]
我想搜索125
并获取以下文档。
我已经尝试过了,但是没有用:
db.collection.find({
amount: {
$regex: 125
}
})
如果可以通过聚合查询来完成,那会更好。
Test.aggregate([
{ "$match": { "$or": [
{ "amount": { parseInt(searchString) }},
{ "firstName": { "$regex": searchString }}
] } }
])
您可以使用$where
查询运算符执行类似这样的非标准查询,但效果不佳:
db.test.find({$where: 'this.amount.toString().match("125")'})
但是,您不能在总计$match
使用$where
。
要做到这一点总的来说,我认为你必须保持一个单独的字符串版本amount
在每次使用正则表达式搜索文件内。
{
_id: ObjectId("5b17ab5489264c2df61ed2d6"),
amount: 12514545,
amountString: '12514545'
}
然后,您可以像搜索其他任何字符串字段一样进行搜索:
Test.aggregate([
{ "$match": { "$or": [
{ "amountString": { "$regex": searchString }},
{ "firstName": { "$regex": searchString }}
] } }
])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.