Mongo 函数查找数组中是否存在超字符串。节点,

Mongo function to find if superstring exists in array. Nodejs,

我的 mongo 'companies' collection 中的文档如下所示:

{
    "companyName": "",
    "companyIcon": "",
    "domains": [
        "companyDomainA.com",
        "companyDomainB.dev"
    ],
    "allowSubDomains": true
}

在我的应用程序中,用户输入 his/her 电子邮件地址。 使用Nodejs原生mongo驱动(https://mongodb.github.io/node-mongodb-native),想查询(查找)用户属于哪个公司

问题是当用户输入电子邮件时 name@dept.companyDomainA.com。 我希望能够根据他的电子邮件(子域 0 或更多级别)查询和查找用户的公司文档,即。 如果字符串的超字符串存在于数组中 mongo。 (注意,我无法存储公司的所有子域,因为它们是动态的并且可以随意更改)

有没有正则表达式way/db schema 的改变方式,可以实现?

提前致谢!!

我会这样做。首先从电子邮件地址中找到根域。为此,我会拆分电子邮件并首先获取域。

const email = "name@dept.companyDomainA.com";
const domain = email.split('@')[1]; // dept.companyDomainA.com

现在从中获取主机 (companyDomainA.com)。关注这个 link

所以,我找到了 companyDomainA.com 的根域。现在 运行 查找查询。

db.collection('documents').find({"domains": "companyDomainA.com"});

我没有测试这段代码。