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

问题描述 投票:0回答:1

我的mongo'companies'集合中的文档如下:

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

在我的应用程序中,用户输入他/她的电子邮件地址。我想使用Nodejs本机mongo驱动程序(https://mongodb.github.io/node-mongodb-native)查询(查找)用户所属的公司。

问题是,当用户以[email protected]的形式输入电子邮件时。我希望能够基于用户的电子邮件(子域为0或更高级别)来查询和查找用户的公司文档。 如果字符串的超字符串存在于mongo的数组中。(注意,我不能存储公司的所有子域,因为它们是动态的,可以随意更改)

是否有正则表达式方式/数据库模式更改方式来实现?

提前感谢!

node.js regex mongodb mongodb-query node-mongodb-native
1个回答
0
投票

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

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

现在从中获取主机((companyDomainA.com)])。遵循此link

所以,我发现根域为companyDomainA.com。现在运行查找查询。

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

我没有测试此代码。

© www.soinside.com 2019 - 2024. All rights reserved.