首页 > 解决方案 > mongoDB - 针对部分字段值的正则表达式搜索

问题描述

我在国家对象中有国家呼叫代码的国家集合。如何使用带有手机号码的呼叫代码查找国家/地区?

const countries = [
  {
    name: 'UAE',
    callingCode: 971
  },
  {
    name: 'USA',
    callingCode: 1
  },
  {
    name: 'UK',
    callingCode: 44
  }
];

const number = '971524500000'; // Input

如何使用 mongoose javascript 中的正则表达式找到给定手机的国家/地区;

标签: javascriptregexmongodbmongodb-queryaggregation-framework

解决方案


[ https://en.wikipedia.org/wiki/List_of_country_calling_codes][1]

查看上面有关国家/地区呼叫代码的链接,具体请参见“树列表”部分。

一种解决方案是基于这棵树在 Mongo 中实现一个模式,以便解码国家代码。

因此,可以创建一个表来存储包含字段“1x”“2x”“21x”等(树列表表中的 Y 轴)的 Mongo 文档。

这些文档中的每一个都可以包含从 x=0 到 x=9(树列表表中的 x 轴)的子文档数组。子文档可以包含您要查找的国家/地区名称/代码。您可以在 Mongo 文档中使用对数组的直接索引来进行有效查找。

我认为您会发现这是一个非常有效的实现,并且应该涵盖所有基础。


推荐阅读