我有两个系列:
list1和list2。
list1有一些字段,list2有另一个字段,包括引用list1的id。
我需要进行查询以导出list1上的所有项目,这些项目在list2上至少有一个引用他的项目。
我该怎么做?它类似于从list1到list2的连接。
我需要运行mongoexport命令来生成csv文件。
答案 0 :(得分:3)
我这样做的方法是创建一个简短的javascript程序,将你想要导出的数据传输到一个新的临时集合中,然后可以导出。
例如,创建一个文件export.js:
//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");
然后你可以从cmd行运行它:
# mongo "localhost:27017/<dbname>" export.js
这将创建一个名为export.results的集合,其中包含list1集合中的文档,其中list2集合中的文档具有匹配的id字段。然后,您可以导出或转储此集合:
# mongoexport --db <dbname> -c export.results -type csv -o <file_name>