25

如果我在 node.js 中使用 Mongoose,我需要这样做:

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myDB');

但是如果我刚刚安装了 mongodb 而我现在没有任何数据库呢?在做之前如何在 node.js 中使用 mongoose 创建一个新数据库mongoose.connect('mongodb://localhost/myDB')?或者如果没有这样的,myDB那么它会创建一个新的?还是会抛出没有这样的数据库的错误?

4

3 回答 3

20

It should not throw any error. The moment you insert a document in any new collection of that DB, the collection and db will be created

于 2013-05-09T10:27:04.763 回答
0

尝试通过猫鼬连接时,我为我找到了解决方案。

!!!首先你需要指定数据库,即使你想连接到默认数据库(默认数据库是'admin'),这很重要!!!在我指定 /admin db 之前,我的数据是从几个 db 混合的。

您需要为正确的数据库指定凭据(作为用户名和密码)(在我的情况下admin(我以前从未创建过admin数据库,它是默认数据库))。

但是如果你想连接到另一个数据库怎么办?您应该在连接选项中感受到authSource方法(在 uri 中指定另一个数据库:mongodb://localhost:27017/database):

mongoose.connect(
          mongoUri,
          {
            authSource: 'admin',
            useNewUrlParser: true,
            useUnifiedTopology: true,
            useCreateIndex: true,
            user: config.mongo.username,
            pass: config.mongo.password,
            serverSelectionTimeoutMS: 5000,
          },
          (err) => {
            if (err != null) {
              error('mongoose', err.message);
            } else {
              info('mongoose', 'mongoose connected');
            }
          },
        )
于 2021-06-16T08:17:04.907 回答
-1

new mongoStore()在 Mongoose 中,调用时会创建一个新的数据库记录:

  app.use(session({
    resave: false,
    saveUninitialized: true,
    secret: pkg.name,
    store: new mongoStore({
      url: config.db,
      collection : 'sessions'
    })
  }));

或者

const mongoStore = require('connect-mongo')(session);
于 2016-08-31T01:11:08.117 回答