修改 rails mongoid 查询中的值

Modify a value inside a rails mongoid query

我正在以各种格式将 phone 数字存储在用户模型的数据库中。以下皆可。

+306974135662, 306974135662, 30 6974135662

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

+306974135662

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

User.where(phone: params[phone])

应该return 所有 3 个用户 phone 号码 +306974135662、306974135662 和 30 6974135662

选项 1:输入时存储 phone 个数字,使用正则表达式进行匹配。

选项 2:存储 phone 个数字,因为它们是在一个字段中输入的。在另一个字段中存储 phone 数字的规范化表示(您的示例中的第二个)。与规范化表示匹配。

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