首页 > 解决方案 > 使用 mongoose 设置数据库和集合

问题描述

如何使用 mongoose 设置我的数据库和集合?我正在尝试使用 mongoose 连接到 mongodb atlas 数据库。我的数据库名为“test_db”,集合名称为“users”,我将在哪里指定该信息?

这是我的shema(data.js):

// /backend/data.js
const mongoose = require("mongoose");
const Schema = mongoose.Schema;

// this will be our data base's data structure 
const DataSchema = new Schema(
  {
    _id: Number,
    name: String,
    password: String
  }
);

// export the new Schema so we could modify it using Node.js
module.exports = mongoose.model("users", DataSchema);

这是 server.js:

const mongoose = require('mongoose');
const express = require('express');
var cors = require('cors');
const bodyParser = require('body-parser');
const logger = require('morgan');
const Data = require('./data');

const API_PORT = 3001;
const app = express();
app.use(cors());
const router = express.Router();

// this is our MongoDB database
const dbRoute = 'mongodb+srv://<user>:<password>@cluster0-bmihj.mongodb.net/test?retryWrites=true&w=majority';
  ;

// connects our back end code with the database
const conn = mongoose.connect(dbRoute, { useNewUrlParser: true });

//let db = mongoose.connection;
const db = conn.db('test_db');

var MyModel = mongoose.model('Test', new Schema({ name: String }));

db.once('open', () => console.log('connected to the database'));

// checks if connection with the database is successful
db.on('error', console.error.bind(console, 'MongoDB connection error:'));


// this is our get method
// this method fetches all available data in our database
router.get('/getData', (req, res) => {
  Data.find((err, data) => {
    if (err) return res.json({ success: false, error: err });
    return res.json({ success: true, data: data });
  });
});

标签: node.jsmongodbmongoose

解决方案


通过这一行,您连接到 MongoDB:

const conn = mongoose.connect(dbRoute, { useNewUrlParser: true })

考虑:

dbRoute = mongodb://DB-username:DBpassword@ds245901.mlab.com:44422/Database-Name";

这是您的数据信息

DB-username = Your database user name
DBpassword = Your database password
Database-Name = Your database name (which database you want to use)

因此,无需像这样连接到所需的数据库:

const db = conn.db('test_db');

推荐阅读