如何通过使用Mongoose将两个或多个集合与nodejs应用程序链接来进行CRUD

jxct1oxe  于 2024-01-08  发布在  Go
关注(0)|答案(1)|浏览(105)

我是一个初学者,想使用nodejs和mongoDB(mongoose)练习CRUD。只有一个集合(employees)连接到现有代码,我们想添加另一个集合(例如,sensors)。
用于指text
我的项目文件夹

Node.js-Expess-MongoDB-CRUD-master
├─ project
│  ├─ controllers
│  │  ├─ employeeController.js
│  │  └─ sensorController.js
│  ├─ models
│  │  ├─ db.js
│  │  ├─ employee.model.js
│  │  └─ sensor.model.js
│  ├─ package-lock.json
│  ├─ package.json
│  ├─ server.js
│  └─ views
│     ├─ employee
│     │  ├─ addOrEdit.hbs
│     │  └─ list.hbs
│     ├─ layouts
│     │  └─ mainLayout.hbs
│     └─ sensor
│        ├─ addOrEdit.hbs
│        └─ list.hbs
└─ README.md

字符串
我添加了databases/sensorController.js、models/sensor.model.js、views/sensor并修改了db.js
现有db.js文件的代码如下:

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/EmployeeDB', { useNewUrlParser: true, useUnifiedTopology: true}, (err) => {
if (!err) { console.log('MongoDB Connection Succeeded.') }
    else { console.log('Error in DB connection : ' + err) }
});

require('./employee.model');



修改如下:

const mongoose = require('mongoose');

const conn = mongoose.createConnection('mongodb://127.0.0.1:27017/EmployeeDB'   , { useNewUrlParser: true, useUnifiedTopology: true}, (err) => {
if (!err) { console.log('MongoDB Connection Succeeded.') }
    else { console.log('Error in DB connection : ' + err) }
}        );
const EmployeeModel = conn.model('EmployeeModel', require('./employee.model'));
require('./employee.model');

const conn2 = mongoose.createConnection('mongodb://127.0.0.1:27017/SensorDB'   ,  { useNewUrlParser: true, useUnifiedTopology: true}, (err) => {
if (!err) { console.log('MongoDB Connection Succeeded.') }
    else { console.log('Error in DB connection : ' + err) }
}  );
const SensorModel =conn2.model('SensorModel', require('./sensor.model'));

module.exports = {conn, EmployeeModel, conn2,SensorModel};


发生如下错误。

$ node server.js
Express server started at port : 3000
MongoDB Connection Succeeded.
MongoDB Connection Succeeded.
Error in retrieving employee list :MongooseError: Operation `employees.find()` buffering timed out after 10000ms
Error during record insertion : MongooseError: Operation `employees.insertOne()` buffering timed out after 10000ms
Error in retrieving sensor list :MongooseError: Operation `sensors.find()` buffering timed out after 10000ms
Error during record insertion : MongooseError: Operation `sensors.insertOne()` buffering timed out after 10000ms
Error during record insertion : MongooseError: Operation `sensors.insertOne()` buffering timed out after 10000ms
Error during record insertion : MongooseError: Operation `sensors.insertOne()` buffering timed out after 10000ms
Error in retrieving sensor list :MongooseError: Operation `sensors.find()` buffering timed out after 10000ms


如果你能回答我的问题,我将不胜感激

tquggr8v

tquggr8v1#

据我所知,你对集合和数据库有概念上的混淆。
数据库由一个或多个集合组成。集合由一个或多个文档组成。
也许this可以帮助你理解MongoDB的核心概念。
问题是你想添加一个新的集合,但你的代码添加了一个新的数据库。
如果你想添加一个新的集合,只需添加模型。使用这个模型,Mongoose会在创建新文档时立即创建一个集合。但是,如果你愿意,你可以使用createCollection方法手动触发它。

相关问题