我的蒙戈公司收藏的一份文件如下所示:
{
"companyName": "",
"companyIcon": "",
"domains": [
"companyDomainA.com",
"companyDomainB.dev"
],
"allowSubDomains": true
}在我的应用程序中,用户输入他/她的电子邮件地址。使用Nodejs本机mongo驱动程序(https://mongodb.github.io/node-mongodb-native),我希望查询(查找)用户所属的公司。
问题是当用户以name@dept.companyDomainA.com的形式输入电子邮件时。我想要能够查询和找到的公司文件的用户基于他的电子邮件(分区0或更多的水平),即。如果字符串的超字符串存在于mongo.中的数组中(请注意,我不能存储公司的所有子域,因为它们是动态的,可以随意更改)。
是否有一种正则表达式方式/db模式更改方式,以实现这一点?
提前谢谢!!
发布于 2019-12-19 13:42:56
我会这样做的。首先从电子邮件地址查找根域。要做到这一点,我将分割电子邮件和获取域名的第一。
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"});我没有测试这段代码.
https://stackoverflow.com/questions/59410765
复制相似问题