Node.js Mongo函数来查找数组中是否存在超弦。Nodejs,

Node.js Mongo函数来查找数组中是否存在超弦。Nodejs,,node.js,regex,mongodb,mongodb-query,node-mongodb-native,Node.js,Regex,Mongodb,Mongodb Query,Node Mongodb Native,我的mongo“公司”收藏中的文档如下所示: { "companyName": "", "companyIcon": "", "domains": [ "companyDomainA.com", "companyDomainB.dev" ], "allowSubDomains": true } 在我的应用程序中,用户输入他/她的电子邮件地址。 使用Nodejs原生mongo驱动程序(),我想查询(查找)用户所属的公司 问题

我的mongo“公司”收藏中的文档如下所示:

{
    "companyName": "",
    "companyIcon": "",
    "domains": [
        "companyDomainA.com",
        "companyDomainB.dev"
    ],
    "allowSubDomains": true
}
在我的应用程序中,用户输入他/她的电子邮件地址。 使用Nodejs原生mongo驱动程序(),我想查询(查找)用户所属的公司

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

是否有正则表达式方式/db模式更改方式来实现这一点


提前谢谢

我会这样做。首先从电子邮件地址找到根域。要做到这一点,我将拆分电子邮件并首先获取域

const email = "name@dept.companyDomainA.com";
const domain = email.split('@')[1]; // dept.companyDomainA.com
现在从它那里获取主机(companyDomainA.com)。跟着这个

因此,我找到了根域,它是companyDomainA.com。现在运行find查询

db.collection('documents').find({"domains": "companyDomainA.com"});
我没有测试此代码。