【总结】: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:'[email protected]'
})

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() 查询第一个符合条件的数据 【返回值是单个对象】

猜你喜欢

转载自blog.csdn.net/weixin_60297362/article/details/123211321