Javascript 整数的Mongoose部分搜索

Javascript 整数的Mongoose部分搜索,javascript,search,mongoose,integer,partial,Javascript,Search,Mongoose,Integer,Partial,我正在寻找一种方法,部分搜索整数在猫鼬 我有一个对象集合,其属性名为incidentId(整数)。我将incidentId传递给函数(例如:1),我希望结果是所有具有incidentId的对象,从1开始(例如:1、10、11、12…100) 我尝试过使用正则表达式(在意识到我不能将其用于数字之前),如下所示: foundIncidents=wait this.db.find({documentType:'INCIDENT','INCIDENT.incidentId':{$regex:incide

我正在寻找一种方法,部分搜索整数在猫鼬

我有一个对象集合,其属性名为
incidentId
(整数)。我将
incidentId
传递给函数(例如:1),我希望结果是所有具有
incidentId
的对象,从1开始(例如:1、10、11、12…100)

我尝试过使用正则表达式(在意识到我不能将其用于数字之前),如下所示:
foundIncidents=wait this.db.find({documentType:'INCIDENT','INCIDENT.incidentId':{$regex:incidentId,$options:'i'})

我无法修改DB模式以将
incidentId
更改为字符串

如果你需要更多的信息,请告诉我


谢谢

如果您使用MongoDb v4.0+,您可以使用管道方法首先将
int
转换为
字符串。

然后使用
$regex
匹配
incidentId

在v4.0之前的旧版MongoDb中,还有一个技巧可以将
数字
转换为
字符串
。它使用聚合运算符,它接受一个
数字
作为输入(尽管文档说它只接受一个
字符串

例如:

"$project": {
    "stringId": {
       "$substr": [
          "$incidentId",
          0,
          -1
       ]
    }
 }

这将使用新的字段名
stringId
incidentId
转换为
String

,不幸的是,我刚刚检查了,我有4.0。无论如何,谢谢:d此操作是否会永久性地修改我的数据库,或者仅在调用时修改,并将
incidentId
还原为int?这不会更改数据库。如果您的问题已得到回答,您应该接受答案并对其进行表决。