在nodejs中使用mongodb
使用官方的
mongodb
包来操作https://github.com/mongodb/node-mongodb-native
使用第三方包
mongoose
基于官方
mongodb
包进行的封装地址
https://mongoosejs.com/
使用:
安装mongoose
npm install --save mongoose
使用
const mongoose = require('mongoose'); // 引入Schema const schema = mongoose.Schema; // 连接数据库 如果没有该数据库,当插入数据的时候会自动创建 mongoose.connect('mongodb://localhost:27017/myTest',{useUnifiedTopology: true,useNewUrlParser: true}); // 构建集合结构,类似于关系数据库的表结构 // 目的:增加约束,以保证数据地完整性,避免脏数据 const carSchema = new schema({ uname: { type: String, required: true // 该字段不为空 }, age: { type: Number } }) /** * 将文档结构发布为模型 * 第一个参数:传入一个大写名词单数用来表示数据库名词,而mongoose会自动将大写名词的字符串生成小写复数的集合名词 * 比如:Cat=>cats * 第二个参数:架构Schema * 返回值:模型构造函数 */ const Cat = mongoose.model('Cat',carSchema); // 利用模型构造函数,构建数据(需要按照Schema结构构建,否则运行时会报错)(只能插入一个) const ki = new Cat({uname: 'zzzttt'}); // 保存到数据库中 保存成功调用回调函数 ki.save().then(() => { console.log('saved!'); })
CRUD Operations
查询数据
基于上面创建的Cat模型进行使用
查询所有数据
// 查询所有数据,返回值为数组,没有查找则为空数组 // 第一个参数为出错信息 // 第二个参数为查询结果 Cat.find((err,ret) => { if (!err) { console.log(ret); } })
按条件查询
// 按条件查询 返回所有符合条件的数据 Cat.find({ uname: 'zzzttt' },(err,ret) => { if (!err) { console.log(ret); } }) // 按条件查 返回第一个符合条件的数据,返回值为对象,如何没有找到则返回null // 如果不传入条件,则返回第一条数据 Cat.findOne({ uname: 'zzzttt' },(err,ret) => { if (!err) { console.log(ret); } })
删除数据
// 删除数据 用法与find类似 Cat.remove({ uname: 'zzzttt' },(err,ret) => { if (!err) { console.log('delete sucess!'); } }) // 删除满足条件的一个数据 Cat.deleteOne({ uname:'ji' },() => { console.log('delete success!') })
更新数据
// 更新第一条满足要求的数据,第一个参数表示条件,第二个参数表示更新内容,第三个参数是选项默认Null,第四个参数是更新成功的回调函数 Cat.updateOne({ uname:'ji' },{ age: 19 },null,() => { console.log('sucess'); }) // updateMany则是更新所有满足条件的数据,用法与updateOne类似 // 通过id更新数据 id是自生成的id号 Cat.findByIdAndUpdate(id, update, options, callback) // executes Cat.findByIdAndUpdate(id, update, options) // returns Query Cat.findByIdAndUpdate(id, update, callback) // executes Cat.findByIdAndUpdate(id, update) // returns Query Cat.findByIdAndUpdate()
赞 (0)