如何将此MongoDB数据导出为CSV文件("加入"两个集合)?

时间:2016-11-12 17:24:50

标签: mongodb csv

我有一个包含两个集合的数据库。

集合cars的文档如下所示:

{ license_number: "123456", name: "tesla" }
{ license_number: "654321", name: "ford" }
{ license_number: "987654", name: "volvo" }

集合greatCars的文档如下所示:

{ license_number: "123456" }

我想导出"加入"这两个集合中的CSV文件如下所示:

license_number, name,  isGreat
123456,         tesla, TRUE
654321,         ford,  FALSE
987654,         volvo, FALSE

(请不要冒犯。这只是一个例子,我对汽车一无所知。)

1 个答案:

答案 0 :(得分:1)

您可以创建一个简短的javascript程序,将您要导出的数据传输到可以导出的新临时集合中。

创建文件moodle-editor_atto-editor: Plugin 'testplugin' could not be found - skipping initialisation

export.js:

从cmd行运行:

 //initialise the export results collection   
     db.export.results.drop()`;   
     //create a cursor containing the contents of the list1 collection  
     cursor = db.list1.find();
        while (cursor.hasNext()) {
            doc = cursor.next();
         //Check if the document exists in the list2 collection
         list2 = db.list2.find({"<id_fieldname>": doc.<id_fieldname>});
         if (list2.hasNext()) {
             //if it does exist, add the document from list1 to the new export collection
            db.export.results.insert(doc);
         }
     }
     print(db.export.results.count() + " matching documents found");

它将创建一个名为# mongo "localhost:27017/<dbname>" export.js 的集合,其中包含list1集合中的文档,其中包含list2(在您的情况下为export.resultscars)集合中具有匹配id字段的文档。然后,您可以导出或转储此集合:

greatCars