MongoDB GridFS 未按预期运行

问题描述 投票:0回答:0

我正在尝试集成以下包来创建一个将文件保存到 MongoDB 中的 API。 mongodb、multer、multer-gridfs-storage、gridfs-stream.

(我使用的是 mongodb 驱动程序而不是 mongoose)

我使用以下代码建立连接、创建网格并导出数据库实例:

import { MongoClient, Db, MongoError } from "mongodb";
import Grid from "gridfs-stream";

let db: Db;
let gfs: Grid.Grid;

export const connectToDb = (cb: Function) => {
    MongoClient.connect(process.env.MONGODB_CONNECTION_STRING!)
        .then((client) => {
            db = client.db("main-database");
            gfs = Grid(db, MongoClient);
            gfs.collection("uploads");
            return cb();
        })
        .catch((err: MongoError) => {
            console.error(err);
            return cb(err);
        });
};

export const getDb = () => db;

就其实际将文件保存到 atlas 集群而言,它工作正常。

当它在集群中创建一个名为“test”的单独数据库而不是我指定的数据库(“main-database”)时,它的行为出乎意料。现在我的集群中有两个数据库,“主数据库”包含我指定的集合,“测试”包含 gridfs 集合“uploads.chunks”和“uploads.files”。我想要的是我所有的收藏都在一个数据库(“主数据库”)下。

知道为什么会发生这种情况以及如何解决它吗?

typescript mongodb gridfs gridfs-stream
© www.soinside.com 2019 - 2024. All rights reserved.