如何在 mongoDB 中找到上传文件的位置?
How to find the location of uploaded file in mongoDB?
我最近下载了一个代码。我无法理解的是如何使用 mongoDB 和 mongoose 上传和读取文件。
这是代码和我的理解。
在 app.js 中,mongoose 连接到 mongoDB,而在 myDB.js 中定义了数据的存储位置。
app.js
mongoose.connect(myDB.db);
mongoose.connection.on('connected', (connection) => {
gfs = new GridFsStorage('/data')
gfs.on('ready', function() {
setupModelRoutes(mongoose.connection.db)
})
})
myDB.js
module.exports = {
db: process.env.MONGODB || 'mongodb://localhost:27017/myData',
gridFs: process.env.GRIDFS || 'mongodb://localhost:27017/test',
};
我想我可以在 "myData" 中找到我上传的文件。但是,我的计算机中没有 "myData" 文件。我没有创建它。
但令人惊讶的是,mongoDB 和 mongoose 似乎可以正常工作。我可以在浏览器中上传和阅读我上传的文件,但是我找不到文件的存储位置。
我检查了 mongoDB 的默认路径,即 /data/db。似乎数据未存储在文件夹中。我想知道数据实际存储在哪里以及以何种类型存储。
你找错地方了。
您需要为此查询 GridFS collection。
如文档中所述:
GridFS stores files in two collections:
- chunks stores the binary chunks. For details, see The chunks Collection.
- files stores the file’s metadata. For details, see The files Collection.
我最近下载了一个代码。我无法理解的是如何使用 mongoDB 和 mongoose 上传和读取文件。
这是代码和我的理解。
在 app.js 中,mongoose 连接到 mongoDB,而在 myDB.js 中定义了数据的存储位置。
app.js
mongoose.connect(myDB.db);
mongoose.connection.on('connected', (connection) => {
gfs = new GridFsStorage('/data')
gfs.on('ready', function() {
setupModelRoutes(mongoose.connection.db)
})
})
myDB.js
module.exports = {
db: process.env.MONGODB || 'mongodb://localhost:27017/myData',
gridFs: process.env.GRIDFS || 'mongodb://localhost:27017/test',
};
我想我可以在 "myData" 中找到我上传的文件。但是,我的计算机中没有 "myData" 文件。我没有创建它。
但令人惊讶的是,mongoDB 和 mongoose 似乎可以正常工作。我可以在浏览器中上传和阅读我上传的文件,但是我找不到文件的存储位置。
我检查了 mongoDB 的默认路径,即 /data/db。似乎数据未存储在文件夹中。我想知道数据实际存储在哪里以及以何种类型存储。
你找错地方了。
您需要为此查询 GridFS collection。 如文档中所述:
GridFS stores files in two collections:
- chunks stores the binary chunks. For details, see The chunks Collection.
- files stores the file’s metadata. For details, see The files Collection.