【发布时间】:2023-04-02 02:45:01
【问题描述】:
作为某些“您可能认识的人”功能的一部分,我们有一个应用程序可以发送一组用户联系人的最后 9 位数字(最后 9 位数字,因为用户存储联系人详细信息的方式存在问题,例如使用国家代码等)。然后,API 必须执行查找,我们需要在数据库中查找任何用户电话号码的最后 9 位与数组中的电话号码匹配的任何用户文档。
我希望做类似的事情:
usersContacts = [123456789, 987654321, 123443212,...]
find: {
phoneNumber: {
$in: usersContacts,
$regex: 'Some last 9 digit match regex'
}
}
以下在聚合管道中确实有效:
$match: {
phoneNumStr: {
$in: [/861650975$/, /861650976$/]
}
}
上面的两个问题是我需要先将电话号码字段投影到一个字符串(这很好),但还需要通过循环应用程序发送的数组并创建 / 添加 N 个不同的正则表达式语句{phoneNum}$/
这有任何性能问题吗?或者这样可以吗?
【问题讨论】:
标签: node.js mongodb mongoose nosql