浙江坤宇建设有限公司网站,建设微信网站需要服务器,wordpress集中权重,wordpress 适应手机MongoDB 1) Mongoose2) 插入文档3) 字段类型4) 字段值验证5) CRUD1) 增加2) 删除3) 更新4) 查询 6) 条件控制1) 运算符2) 逻辑运算3) 正则匹配 7) 个性化读取1) 字段筛选2) 数据排序3) 数据截取 1) Mongoose
介绍
Mongoose 是一个对象文档模型库#xff0c;官网 http://www.… MongoDB 1) Mongoose2) 插入文档3) 字段类型4) 字段值验证5) CRUD1) 增加2) 删除3) 更新4) 查询 6) 条件控制1) 运算符2) 逻辑运算3) 正则匹配 7) 个性化读取1) 字段筛选2) 数据排序3) 数据截取 1) Mongoose
介绍
Mongoose 是一个对象文档模型库官网 http://www.mongoosejs.net/
作用
方便使用代码操作 mongodb 数据库
使用流程
// 导入mongoose
const mongoose require(mongoose);// 连接 mongodb
mongoose.connect(mongodb://127.0.0.1:27017/bilibili);// 设置回调
mongoose.connection.on(open, () {// 设置连接成功的回调console.log(连接成功);
});
mongoose.connection.on(error, () {// 设置连接错误的回调console.log(连接失败);
});
mongoose.connection.on(close, () {// 设置连接关闭的回调console.log(连接关闭);
});// 关闭连接
setTimeout(() {mongoose.disconnect();
}, 2000);2) 插入文档
// 导入mongoose
const mongoose require(mongoose);mongoose.set(strictQuery, false);// 连接 mongodb
mongoose.connect(mongodb://127.0.0.1:27017/bilibili);// 设置回调
mongoose.connection.once(open, () {// 创建文档的结构对象let BookSchema new mongoose.Schema({name: String,author: String,price: Number});// 创建模型对象let BookModel mongoose.model(books, BookSchema);// 新增BookModel.create({name: 西游记,author: 吴承恩,price: 19.9}, (err,data){if (err) {console.log(err);return;}console.log(data);mongoose.disconnect();});
});
mongoose.connection.on(error, () {// 设置连接错误的回调console.log(连接失败);
});
mongoose.connection.on(close, () {// 设置连接关闭的回调console.log(连接关闭);
});3) 字段类型
文档结构可选的常用字段类型列表
类型描述String字符串Number数字Boolean布尔值Array数组也可以使用[]来标识Date日期BufferBuffer 对象Mixed任意类型需要使用 mongoose.Schema.Types.Mixed 指定ObjectId对象 ID需要使用 mongoose.Schema.Types.ObjectId 指定Decimal128高精度数字需要使用 mongoose.Schema.Types.Decimal128 指定
4) 字段值验证
Mongoose 有一些内建验证器可以对字段值进行验证
必填项
title: {type: String,required: true // 设置必填项
},默认值
author: {type: String,default: 匿名 //默认值
},枚举值
gender: {type: String,enum: [男,女] //设置的值必须是数组中的
},唯一值 (主键)
username: {type: String,unique: true
},unique 需要 重建集合 才能有效果 5) CRUD
数据库的基本操作包括四个增加create删除delete修改update查read
1) 增加
插入一条
SongModel.create({title:给我一首歌的时间,author: Jay
}, function(err, data){//错误console.log(err);//插入后的数据对象console.log(data);
});批量插入
PhoneModel.insertMany([{brand:华为,color:灰色,price:2399,tags:[电量大,屏幕大,信号好]},{brand:小米,color:白色,price:2099,tags:[电量大,屏幕大,信号好]}],(err,data){if(err) throw err;console.log(写入成功);mongoose.connection.close();
})2) 删除
删除一条数据
BookModel.deleteOne({_id: 65c60c85df92ad81ab74d4a8}, (err, data) {// 判断if (err) {console.log(删除失败~~);return;}console.log(data);
});批量删除
BookModel.deleteMany({is_hot: false}, (err, data) {if (err) {console.log(删除失败~~);return;}console.log(data);
});3) 更新
更新一条
BookModel.updateOne({name: 红楼梦}, {price: 9.9}, (err, data) {if (err) {console.log(err);return;}console.log(data);
});批量更新
BookModel.updateMany({author: 余华}, {is_hot: false}, (err, data) {if (err) {console.log(err);return;}console.log(data);
});4) 查询
查询单条数据
BookModel.findOne({name: 狂飙}, (err, data) {if (err) {console.log(err);}console.log(data);
});根据id查询
BookModel.findById({_id: 65c60c85df92ad81ab74d4b9}, (err, data) {if (err) {console.log(err);}console.log(data);
});批量查询 (条件可以不添加则自动获取所有)
BookModel.find({author: 余华}, (err, data) {if (err) {console.log(err);}console.log(data);
});6) 条件控制
1) 运算符
在 mongodb 不能 ! 等运算符需要使用替代符号 使用 $gt 使用 $lt 使用 $gte 使用 $lte ! 使用 $ne
db.students.find({id: {$gt: 3}}); id号比3大的所有的记录2) 逻辑运算
$or 逻辑或的情况
db.students.find({$or: [{age:18},{age:24}]});$and 逻辑与的情况
db.students.find({$and: [{age: {$lt:20}}, {age: {$gt: 15}}]});3) 正则匹配
条件中可以直接使用 JS 的正则语法通过正则可以进行模糊查询
db.students.find({name:/刘/});db.students.find({name: new RegExp(刘)});7) 个性化读取
1) 字段筛选
//0:不要的字段
//1:要的字段
SongModel.find().select({_id:0,title:1}).exec(function(err,data){if(err) throw err;console.log(data);mongoose.connection.close();
});2) 数据排序
//sort 排序
//1:升序
//-1:倒序
SongModel.find().sort({hot:1}).exec(function(err,data){if(err) throw err;console.log(data);mongoose.connection.close();
});3) 数据截取
//skip 跳过 limit 限定
SongModel.find().skip(10).limit(10).exec(function(err,data){if(err) throw err;console.log(data);mongoose.connection.close();
});