在Nodejs中如何使用mongodb,来调用或者存储数据
//引入mongoose第三方模块 用来操作数据库
const mongoose = require('mongoose');
// 数据库连接
mongoose.connect('mongodb://localhost/playground', {
useNewUrlParser: true,
useUnifiedTopology: true
})
// 连接成功
.then(() => console.log('数据库连接成功'))
// 连接失败
.catch(err => console.log(err, '数据库连接失败'));
const courseSchema = new mongoose.Schema({
name: String,
author: String,
isPublished: Boolean
})
const Course = mongoose.model('Course', courseSchema)
Course.create({
name: '语文',
author: '小刚',
isPublished: false
}, (error, doc) => {
console.log(error);
console.log(doc);
})
1.首先需要引入第三方模块mongoose
2.mongoose.connect()方法连接本地数据库,第一个参数是固定的格式mongodb协议后面的localhost/playground是本地数据库,如果没有则自动创建。
3.创建集合规则:const courseSchema = new mongoose.Schema({}),里面的参数是一个对象,规定数据的基本类型。
4.const Course = mongoose.model(‘Course’, courseSchema)创建集合(注意这个时候数据库并不会显示该集合,因为此时还没有向里面填充文档。)
5. Course.create({})向集合中填充数据,第一个参数是填充的文档对象,第二个参数是返回添加文档成功或者失败的方法。
另一种添加文档的方式,是通过实例化集合来实现的如下:
const course = new Course({
name: '数学',
author: '小红',
isPublished: true
})
course.save();
如何查找对应条件的文档用到的是User.find({})来实现,User是创建的集合对象参数是需要查找的条件
User.find({
age: {
$lt: 30,
}
}).then((result) => {
console.log(result)
})
$lt < (less than ) 小于
$lte <= (less than or equal to ) 小于等于
$gt > (greater than )大于
$gte >= (greater than or equal to)大于等于
User.find({
hobbies: '足球'
}).then(result => console.log(result))
User.find({
hobbies: {
$in: '足球'
}
}).then(result => console.log(result))
User.find().sort('-age').then(result => console.log(result))
User.find({
age: {
$gt: 19
} //选择需要查询的字段
}).select('name').then(result => console.log(result))
User.find().skip(2).limit(2).then(result => console.log(result));
$in在这里是指hobbies数组里面包含’足球’
删除某一个文档
User.findOneAndDelete({
name: '王五'
}).then(result => console.log(result))
更新文档中的数据
User.updateMany({
age: 19
}, {
age: 20
}).then(result => console.log(result));