我正在寻找一种部分搜索猫鼬中整数的方法。
我有一个对象集合,这些对象具有一个名为incidentId
(整数)的属性。我将incidentId
传递给函数(例如:1),并且期望结果是所有incidentId
以1开头的对象(例如:1、10、11、12) ... 100)。
我尝试使用正则表达式(在意识到我不能将其与数字一起使用之前),如下所示:
foundIncidents = await this.db.find({documentType: 'INCIDENT', 'incident.incidentId':{ $regex: incidentId, $options: 'i' }});
我无法修改数据库架构以将incidentId
更改为String。
如果您需要更多信息,请告诉我。
谢谢
答案 0 :(得分:0)
如果您使用MongoDb v4.0 +,则可以使用aggregation管道方法$toString首先将int
转换为string
。
然后使用$regex
来匹配incidentId
。
答案 1 :(得分:0)
v4.0之前的MongoDb较旧版本中还有一个技巧可以将USER root
转换为Number
。它使用聚合运算符$substr
来接受String
作为输入(尽管文档说它仅接受Number
)。
示例:
String
这会使用新的字段名"$project": {
"stringId": {
"$substr": [
"$incidentId",
0,
-1
]
}
}
将incidentId
转换为String
。