猫鼬部分搜索整数

时间:2019-12-17 14:52:59

标签: javascript search mongoose integer partial

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

我有一个对象集合,这些对象具有一个名为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。

如果您需要更多信息,请告诉我。

谢谢

2 个答案:

答案 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