我的mongo'companies'集合中的文档如下:
{
"companyName": "",
"companyIcon": "",
"domains": [
"companyDomainA.com",
"companyDomainB.dev"
],
"allowSubDomains": true
}
在我的应用程序中,用户输入他/她的电子邮件地址。我想使用Nodejs本机mongo驱动程序(https://mongodb.github.io/node-mongodb-native)查询(查找)用户所属的公司。
问题是,当用户以[email protected]
的形式输入电子邮件时。我希望能够基于用户的电子邮件(子域为0或更高级别)来查询和查找用户的公司文档。 如果字符串的超字符串存在于mongo的数组中。(注意,我不能存储公司的所有子域,因为它们是动态的,可以随意更改)
是否有正则表达式方式/数据库模式更改方式来实现?
提前感谢!
我会这样做。首先从电子邮件地址中找到根域。为此,我将拆分电子邮件并首先获取域。
const email = "[email protected]";
const domain = email.split('@')[1]; // dept.companyDomainA.com
现在从中获取主机((companyDomainA.com)])。遵循此link。
所以,我发现根域为companyDomainA.com。现在运行查找查询。
db.collection('documents').find("domains": "companyDomainA.com");
我没有测试此代码。