修改 rails mongoid 查询中的值

问题描述

我将电话号码以各种格式存储在用户模型的数据库中。以下都是可能的。

+306974135662,306974135662,30 6974135662

然后从前端,我得到一个带有加号但没有空格的特定格式。

+306974135662

我想编写一个匹配上述所有格式的 mongoid 查询。这可能吗?

User.where(phone: params[phone])

应返回电话号码为 +306974135662、306974135662 和 30 6974135662 的所有 3 个用户

解决方法

选项 1:存储输入的电话号码,使用正则表达式进行匹配。

选项 2:存储在一个字段中输入的电话号码。在另一个字段中存储电话号码的规范化表示(示例中的第二个)。与规范化表示匹配。

第二个选项需要额外的磁盘空间、内存和预处理,但可以让查询更简单、更快。