如何使用 Mongoose 和 Node 连接到特定数据库?

Kes*_*lme 7 mongoose mongodb node.js

我正在学习如何使用 Mongoose,但有一些我不明白的地方 - 如何连接到集群中的特定数据库和集合?

我有 5 个不同的数据库,每个数据库都有几个不同的集合

当我使用纯 Mongo 客户端时 - 正如官方文档中显示的那样,我像这样连接:

const MongoClient = require('mongodb').MongoClient;
const uri = process.env.mongo_connection_string;

const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
  const collection = client.db("database_name").collection("collection_name");

       // Do some work here in the selected database and the selected collection
  client.close();
});
Run Code Online (Sandbox Code Playgroud)

现在想用Mongoose来练习。所以在我的 app.js 中建立连接我这样做:

mongoose.connect(process.env.mongo_connection_string , {useNewUrlParser: true})
.then( () => console.log("Connection established"))
.catch(err => console.log(err))
Run Code Online (Sandbox Code Playgroud)

然后,我为要存储在数据库中的对象之一创建了一个架构。

const mongoose = require('mongoose')

const UserSchema = new mongoose.Schema({

    name: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    }
})

const User = mongoose.model('User', UserSchema)
module.exports = User
Run Code Online (Sandbox Code Playgroud)

如何将该模型与我需要的数据库和集合关联起来?

小智 7

要连接到特定数据库,您可以在选项中添加名称,如下所示:

mongoose
  .connect(db_url, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    dbName: 'MyDatabaseName',
  })
  .then(() => {
    console.log('Connected to the Database.');
  })
  .catch(err => console.error(err));
Run Code Online (Sandbox Code Playgroud)


Rav*_*avi 0

请在 URI 中指定数据库名称(如链接)(或)请使用 mongo URI 获取默认客户端对象,然后获取所需的数据库和集合对象。