/*
详细操作mongodb数据库
*/
// 导入包
let mongoose = require('mongoose')
// 2 连接数据库
mongoose.connect('mongodb://localhost:27017/kd23',(err) => {
if(err) return console.log(err);
console.log('连接成功');
})
// 3 创建表结构
let users = new mongoose.Schema({
// 对字段的描述
username:String,
age:{
type:Number,
min:18,
max:130,
required:true // 必填
},
gender:{
type:String,
// 写入数据库的gender,只能是enum中的
enum:['男','女','保密']
},
desc:{
type:String,
minlength:10,
maxlength:100,
default:'没啥好说的'
},
hobby:Array,
createTime:{
type:Date,
default:Date.now(),
}
})
// 4 创建结构模型
let usersModel = mongoose.model('users',users);
// 5 添加一条数据(每次换数据,多添加几次就可得到多个数据)
new usersModel({
username:'KK',
age:20,
gender:'男',
desc:'hello Alice hahahahaha',
hobby:['健身','游泳']
})
.save()
.then(res => console.log(res))
.catch(err => console.log(err))
// 6 查询和筛选
// 基础查询,直接调用find()查询所有数据
usersModel.find().then(res => console.log(res))
// 基础条件查询 $gt 大于 $lt 小于 $gte 大于等于 $lte 小于等于
usersModel.find({username:'KK'}).then(res => console.log(res))
usersModel.find({age:{$gt:10,$lt:20}}).then(res => console.log(res))
// 基础条件筛选
usersModel
.find() //所有数据
.or([{username:'KK'},{age:18}]) // 并列条件[并列条件在一个数组中]
.and([{username:'KK'},{age:20}])
.where({age:{$gt:10, $lt:20}})
.then(res => console.log(res))
.catch(err => console.log(err))
分页筛选
usersModel
.find()
.skip(0) //开始索引0开始
.limit(2) //获取2个
.then(res => console.log(res))
// 7 结构模型提供的一些方法(使用在最后)
// findByid(数据id)
// findByidAndUpdate(数据id,修改信息)
// findByidAndDelete(数据id) 删除
// findOne({条件}) // 按条件查找第一个满足条件的
// findOneAndUpdate({条件}) //按条件查找一个并修改
// 8 修改语法
// 修改多个 将所有age=18的用户的gender修改为保密
usersModel.updateMany({age:18},{gender:'保密'}).then(res => console.log(res))
// 修改一个 把第一个gae=18的gender改成女
usersModel.updateOne({age:18},{gender:'女'}).then(res => console.log(res))
// 9 删除语法
// 删除一个 删除第一个age=18的
usersModel.deleteOne({age:18}).then(res => console.log(res))
// 删除多个 删除所有gender=保密的
usersModel.deleteMany({gender:'保密'}).then(res => console.log(res))
// 删除所有
usersModel.deleteMany().then(res => console.log(res))
node操作mongodb的一些方法
于 2022-01-24 09:03:11 首次发布