我是一个初学者,想使用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
型
如果你能回答我的问题,我将不胜感激
1条答案
按热度按时间tquggr8v1#
据我所知,你对集合和数据库有概念上的混淆。
数据库由一个或多个集合组成。集合由一个或多个文档组成。
也许this可以帮助你理解MongoDB的核心概念。
问题是你想添加一个新的集合,但你的代码添加了一个新的数据库。
如果你想添加一个新的集合,只需添加模型。使用这个模型,Mongoose会在创建新文档时立即创建一个集合。但是,如果你愿意,你可以使用
createCollection
方法手动触发它。