Mongodb 如何在mongo Db中过滤文件

Mongodb 如何在mongo Db中过滤文件,mongodb,mongodb-query,Mongodb,Mongodb Query,我正在运行4.10 Mongo DB版本 如何获得像这样过滤的文件数 我在MOngo的文件系统中有.doc和.pdf以及.csv 如何检查每个格式文件(.csv、.pdf、.doc)的计数 请让我知道我想你不是指引用,而是指GridFS中的文件。在本例中,它的工作方式是Mongo简单地将它们放在两个集合中,一个用于文件元数据,另一个用于文件块的集合,也就是说,将文件的数据切成碎片。它们是常规集合,您可以像查询任何其他集合一样进行查询。它们的名称是“fs.files”和“fs.chunks” 您想

我正在运行4.10 Mongo DB版本

如何获得像这样过滤的文件数

我在MOngo的文件系统中有.doc和.pdf以及.csv

如何检查每个格式文件(.csv、.pdf、.doc)的计数


请让我知道

我想你不是指引用,而是指GridFS中的文件。在本例中,它的工作方式是Mongo简单地将它们放在两个集合中,一个用于文件元数据,另一个用于文件块的集合,也就是说,将文件的数据切成碎片。它们是常规集合,您可以像查询任何其他集合一样进行查询。它们的名称是
“fs.files”
“fs.chunks”

您想要的是
“fs.files”
。要按类型检索文件,可以使用字段
contentType
。以下是获取PDF数量的方法:

db.fs.files.find({contentType: "application/pdf"}).count()
// or if your question is only for counting
db.fs.files.count({contentType: "application/pdf"})
就像我说的,就像其他收藏一样

编辑:


你需要给我们更多的细节。您的文档看起来像什么?哪些字段存储需要过滤的文件名等。作为起点,检查这个问题-基本上在结尾应用.count()运算符以获取PDF的工作结果,但csv和文档不工作。db.fs.files.find({contentType:“application/pdf”}).count()每个文件都有不同的内容类型,这只是一个示例。对于
.csv
来说,内容类型通常是
text/csv
,我认为
.doc
内容类型是
application/msword
。如果您在查找文件扩展名的内容类型时遇到困难,您可以检查或只是查看
fs.files
数据库,并检查内容类型字段对特定文件的说明。我已编辑了我的答案,以便在最后包括3个版本。
var pdfCount = db.fs.files.find({contentType: "application/pdf"}).count();
var csvCount = db.fs.files.find({contentType: "text/csv"}).count();
var docCount = db.fs.files.find({contentType: "application/msword"}).count();