文章目录
启动
以 mongodb 中 bin 目录作为工作目录,启动命令行
运行命令 mongod
Mongoose
操作
//1. 安装 mongoose //2. 导入 mongoose const mongoose = require('mongoose'); //3. 连接数据库 数据库名称 mongoose.connect('mongodb://127.0.0.1:27017/bilibili'); //4. 设置连接回调 //连接成功 once 一次 事件回调函数只执行一次 mongoose.connection.on('open', () => { console.log('连接成功'); //5. 创建文档结构对象 // 设置集合中 文档的属性以及属性值得类型 let BookSchema = new mongoose.Schema({ title: String, author: String, price: Number }); //6. 创建文档模型对象 对文档操作的封装对象 mongoose会使用集合名称的复数,创建集合 let BookModel = mongoose.model('book', BookSchema); //7. 插入文档 BookModel.create({ title: '西游记', author: '吴承恩', price: 19.9 }, (err, data) => { // 判断是否有错误 if (err) throw err; //输出 data 对象 如果没有出错,则输出插入后的文档对象 console.log(data); //8. 断开连接 关闭数据链接 (项目运行过程中,不会添加该代码) mongoose.disconnect(); }); }); //连接出错 mongoose.connection.on('error', () => { console.log('连接出错~~'); }) //连接关闭 mongoose.connection.on('close', () => { console.log('连接关闭'); })
字段类型
CURD
增加
插入一条
SongModel.create({ title:'给我一首歌的时间', author: 'Jay' }, function(err, data){ //错误 console.log(err); //插入后的数据对象 console.log(data); });
插入多条
//1.引入mongoose const mongoose = require('mongoose'); //2.链接mongodb数据库 connect 连接 mongoose.connect('mongodb://127.0.0.1:27017/project'); //3.设置连接的回调 mongoose.connection.on('open',()=>{ //4.声明文档结构 const PhoneSchema = new mongoose.Schema({ brand:String, color:String, price:Number, tags:Array }) //6.创建模型对象 const PhoneModel = mongoose.model('phone',PhoneSchema); PhoneModel.insertMany([ { brand:'华为', color:'灰色', price:2399, tags:['电量大','屏幕大','信号好'] }, { brand:'小米', color:'白色', price:2099, tags:['电量大','屏幕大','信号好'] } ],(err,data)=>{ if(err) throw err; console.log('写入成功'); mongoose.connection.close(); }) })
删除
删除一条
SongModel.deleteOne({_id:'5dd65f32be6401035cb5b1ed'}, function(err){ if(err) throw err; console.log('删除成功'); mongoose.connection.close(); });
删除多条
SongModel.deleteMany({author:'Jay'}, function(err){ if(err) throw err; console.log('删除成功'); mongoose.connection.close(); });
更新
更新一条
SongModel.updateOne({author: 'JJ Lin'}, {author: '林俊杰'}, function (err) { if(err) throw err; mongoose.connection.close(); });
更新多条
SongModel.updateMany({author: 'Leehom Wang'}, {author: '王力宏'}, function (err) { if(err) throw err; mongoose.connection.close(); });
查询
查询一条
SongModel.findOne({author: '王力宏'}, function(err, data){ if(err) throw err; console.log(data); mongoose.connection.close(); }); //根据 id 查询数据 SongModel.findById('5dd662b5381fc316b44ce167',function(err, data){ if(err) throw err; console.log(data); mongoose.connection.close(); });
查询多条
//不加条件查询 SongModel.find(function(err, data){ if(err) throw err; console.log(data); mongoose.connection.close(); }); //加条件查询 SongModel.find({author: '王力宏'}, function(err, data){ if(err) throw err; console.log(data); mongoose.connection.close(); });