Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 在有许多查询字符串的mongo db中查找重复/新字符串的有效方法_Mongodb_Mongoose - Fatal编程技术网

Mongodb 在有许多查询字符串的mongo db中查找重复/新字符串的有效方法

Mongodb 在有许多查询字符串的mongo db中查找重复/新字符串的有效方法,mongodb,mongoose,Mongodb,Mongoose,我在mongodb中拥有大约150万现有用户数据。我必须使一个功能,将启用批量导入用户。现在我需要检查批量导入的用户数据,即电子邮件是否已经存在。如果有些人在场,有些人不在场,我想知道哪些人在场,哪些人不在场 例如,假设我有现有的用户电子邮件[A、B、C、D、E、F],而导入的用户有电子邮件[C、D、X、Y、Z]。我想知道C,d不能被导入,因为它们存在于数据库中,而X,Y,Z可以被导入 目前,我可以在数据库中查询每个导入的电子邮件,以检查此特定电子邮件是否存在,但我担心导入的数据可能会很大,并且

我在mongodb中拥有大约150万现有用户数据。我必须使一个功能,将启用批量导入用户。现在我需要检查批量导入的用户数据,即电子邮件是否已经存在。如果有些人在场,有些人不在场,我想知道哪些人在场,哪些人不在场

例如,假设我有现有的用户电子邮件
[A、B、C、D、E、F]
,而导入的用户有电子邮件
[C、D、X、Y、Z]
。我想知道C,d不能被导入,因为它们存在于数据库中,而X,Y,Z可以被导入

目前,我可以在数据库中查询每个导入的电子邮件,以检查此特定电子邮件是否存在,但我担心导入的数据可能会很大,并且此方法不会非常有效


有什么方法可以优化吗?

一种方法是首先在收藏的电子邮件字段中放置一个唯一的索引。然后在try/catch块中插入记录。存在的任何电子邮件/记录都会抛出一个异常,在该异常中,您可以捕获失败的条目并对其执行任何操作

或者,您可以一次处理2300条导入记录,并发出以下命令以查看哪些电子邮件已经存在且不应导入

db.collection.find(
    {
        email:
            { $in: ["C", "D", "X", "Y", "Z"] }
    }
)

然后使用命令插入允许插入的记录。

一种方法是首先在集合的电子邮件字段上放置唯一索引。然后在try/catch块中插入记录。存在的任何电子邮件/记录都会抛出一个异常,在该异常中,您可以捕获失败的条目并对其执行任何操作

或者,您可以一次处理2300条导入记录,并发出以下命令以查看哪些电子邮件已经存在且不应导入

db.collection.find(
    {
        email:
            { $in: ["C", "D", "X", "Y", "Z"] }
    }
)
然后使用命令插入允许插入的记录