繁体   English   中英

如何在mongodb中为整数值找到$ regex?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM