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?这不会更改数据库。如果您的问题已得到回答,您应该接受答案并对其进行表决。