使用文本文件中的值查询MongoDB

时间:2014-07-31 14:41:11

标签: mongodb text-files

我已经在一个文本文件中提供了500多个电子邮件地址的列表,并被要求在我们的MongoDB数据库中找出它们中有多少个作为客户电子邮件存在。

在我的收藏集的“Customer.Email”字段中找出当前文本文件中哪些电子邮件的最快捷方式是什么?

我可以使用电子邮件的文本文件作为查询的参数吗,例如?

谢谢,

亚当

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题,

我假设你的txt file采用这种格式,

test1@test.com
test2@test.com
test3@test.com
test4@test.com
test5@test.com
test6@test.com
test7@test.com
test8@test.com 
test9@test.com 
test10@test.com 

text.txt文件上传到服务器,以便将其转换为js array

你可以用这样的东西做到这一点,

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>File Reader</title>


</head>

<body>
    <p>
        <script>
            function getData() { //this will read file and send information to other function

                var xmlhttp;

                if (window.XMLHttpRequest) {

                    xmlhttp = new XMLHttpRequest();

                } else {

                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

                }

                xmlhttp.onreadystatechange = function() {

                    if (xmlhttp.readyState == 4) {

                        var lines = xmlhttp.responseText;

                        intoArray(lines);

                    }


                }

                xmlhttp.open("GET", "text.txt", true);
                xmlhttp.send();

            }


            getData();

            function intoArray(lines) {


                var lineArr = lines.split('\n');

                //just to check if it works output lineArr[index] as bellow*

                lineArr.forEach(function(arrayItem) {
                    console.log(arrayItem);
                });

            }
        </script>
</body>

</html>

此时txt file中的电子邮件地址位于array,因此您可以像mongodb一样查询$in Operator

db.Customers.find( {CustomerEmail: { $in [$myArray] } })