【总结】:Node.js操作MongoDB数据库 —— 增删改查


一、mongoose包

要用Node.js操作MongoDB数据库,我们可以引用第三方包 —— mongoose
中文文档:http://www.mongoosejs.net/

安装方法:

npm i mongoose

二、初始化步骤

var mongoose = require('mongoose')
var Schema =  mongoose.Schema
//1.链接数据库
mongoose.connect('mongodb://localhost/itcast')

//2. 设计文档结构(表结构)
// 字段名称就是表结构中的属性名称
// 约束的目的是为了保证数据的完整性,不要有脏数据
var userSchema = new Schema({
    username:{
        type:String,
        required:true
    },
    password:{
        type:String,
        required:true
    },
    email:{
        type:String,
        required:true
    }
})

// 3. 将文档结构发布为模型
// mongoose.model 方法就是用来将一个架构发布为model
// 第一个参数:传入一个`大写名词单数`字符串用来表示你的数据库名称
//            mongoose会自动将大写名词的字符串生成 小写复数的集合
//            例如这里的 User 最终会变为users集合名称
// 第二个参数:架构Schema

//返回值:模型构造函数
var User = mongoose.model('User',userSchema)

当我们有了模型构造函数之后,就可以使用这个构造函数对 users 集合中的数据为所欲为了!


三、CRUD操作

var admin = new User({
    username:'admin2',
    password:'654321',
    email:'1234@qq.com'
})

admin.save((err,res) => {
    if(err) console.log("增加失败了");
    else console.log("增加成功了");
})

save中res就是你添加的数据

//三、删
//1.根据条件删除所有:Model.remove(conditions,[options],[callback])
User.remove({
    username:'admin1'
},(err,res) => {
    if(err) console.log("删除失败");
    else console.log("删除成功,res是",res);
})
//2.根据条件删除一个:Model.findOneAndRemove(conditions,[options],[callback])
//3.根据id删除所有:Model.findByIdAndRemove(id,[options],[callback])

//1.根据条件更新所有:Model.update(conditions,doc,[options],[callback])
//2.根据条件更新一个:Model.findOneAndUpdate(conditions,[update],[callback])
//3.根据id更新一个:
User.findByIdAndUpdate("621d8ffa3d29f89e51103711",{
    password:'123'
},(err,res) => {
    if(err) console.log("更新失败");
    else console.log("更新成功");
})

//二、查
//1. 查集合中所有数据
User.find((err,res) => {
    if(err) console.log('失败了');
    else console.log(res);
})
//2. 根据Id查询
User.findById("621d8ffa3d29f89e51103711",()=>{
	if(err) console.log('失败了');
    else console.log(res);
})
//3. 其他条件查询
//User.find查询所有符合条件的数据,【返回一个数组包n个对象】
//User.findOne() 查询第一个符合条件的数据 【返回值是单个对象】
User.findOne({
    password:'654321'
},(err,res) => {
    if(err) console.log('失败了');
    else console.log(res);
})

注意:

  • User.find查询所有符合条件的数据,【返回一个数组包n个对象】
  • User.findOne() 查询第一个符合条件的数据 【返回值是单个对象】
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值