按字段查找MongoDB中的所有文档



按字段值查找所有文档时遇到问题。基本上,我想通过字段companyurl查找所有文档。然后我想将其解析到csv阅读器中,只将公司url字段值打印到csv文档中。目前,我的代码打印mongoDB文档的所有字段。

最终,我认为打印到CSV只是companyurl字段的值。find中是否有一种方法可以基于所有文档字段进行选择性查询?

我的文档如下:

_id: ObjectId('63462fd9e52e05829198d5a2')
company:"google"
companyurl:"facebook.com"
__v:0
_id: ObjectId('63462fd9e52e05829198d5a2')
company:"google"
companyurl:"amazon.com"
__v:0
_id: ObjectId('63462fd9e52e05829198d5a2')
company:"google"
companyurl:"stackoverflow.com"
__v:0
_id: ObjectId('63462fd9e52e05829198d5a2')
company:"google"
companyurl:"instagram.com"
__v:0

代码:

mongodb.connect(
url,
{ useNewUrlParser: true, useUnifiedTopology: true },
(err, client) => {
if (err) throw err;
client
.db("mernapp")
.collection("scrapeds")
.find({})
.toArray((err, data) => {
if (err) throw err;
console.log(data);
const json2csvParser = new Json2csvParser({ header: true });
const csvData = json2csvParser.parse(data);
fs.writeFile("bezkoder_mongodb_fs.csv", csvData, function(error) {
if (error) throw error;
console.log("Write to bezkoder_mongodb_fs.csv successfully!");
});
client.close();
});
}
);

收到一个答案,这对我很有效。

const projection = { _id: 0, companyurl: 1 };
mongodb.connect(
url,
{ useNewUrlParser: true, useUnifiedTopology: true },
(err, client) => {
if (err) throw err;
client
.db("mernapp")
.collection("scrapeds")
.find().project(projection)
.toArray((err, data) => {
if (err) throw err;
console.log(data);
const json2csvParser = new Json2csvParser({ header: true });
const csvData = json2csvParser.parse(data);
fs.writeFile("bezkoder_mongodb_fs.csv", csvData, function(error) {
if (error) throw error;
console.log("Write to bezkoder_mongodb_fs.csv successfully!");
});
client.close();
});
}
);

最新更新