2.mongoose删改查、判断

170 阅读1分钟

数据操作

//3.设置回调 01.连接成功的回调 once只执行一次
mongoose.connection.once('open',()=>{
  // console.log('连接成功');
  .....数据操作.....
  }

4.创建插入

 //5.创建文档的结构对象
  let BookSchema =new mongoose.Schema({
    name:String,
    author:String,
    price:Number,
    is_hot:Boolean,
    tags:Array,
    pub_time:Date
  });

  //6.创建模型对象 需要操作的集合名称
  let BookModel=mongoose.model('novel',BookSchema);
  
  //7.新增
 7.新增
  BookModel.create({
    name:'红楼梦',
    author:'曹雪芹',
    price:120,
    is_hot:true,
    tags:['金陵十二钗','家族','情感'],
    pub_time:new Date()
  }).then((err,data)=>{
    if(err){
       console.log(err);
       return;
     }
     console.log(data);
   //8.关闭数据库连接 项目运行过程中不会添加该代码
   mongoose.disconnect();
  });

5.mongoose删除文档

db.novels.find();//查看文档下的数据

image.png

//7.删除单个(第一个)
// BookModel.deleteOne({_id:'64ed67985d2e0cd914c32569'}).then((err,data)=>{
//   if(err){
//     console.log(err);
//     return;
//   }
//   console.log(data);
// })
//7.批量删除
BookModel.deleteMany({is_hot:'true'}).then((err,data)=>{
    if(err){
      console.log(err);
      return;
    }
    console.log(data);
  })

})

6.mongoose更新

//7.更新
// BookModel.updateOne({ name:'红楼梦',},{author:'李盈盈',}).then((err,data)=>{
//   if(err){
//     console.log(err);
//     return;
//   }
//   console.log(data);
// })
//批量更新
BookModel.updateMany({ price:50,},{is_hot:false}).then((err,data)=>{
  if(err){
    console.log(err);
    return;
  }
  console.log(data);
})

7、mongoose读取文档

//查找单一数据
BookModel.findOne()
BookModel.findById()
//批量查找
BookModel.find()
BookModel.find({author: '王力宏'}

8、mongoose条件判断

{price:{$gt:20}} 等价于 price>20

> 使用 $gt
< 使用 $lt
>= 使用 $gte
<= 使用 $lte
!== 使用 $ne

//使用
BookModel.find({price:{$gt:20}},())

9、mongooes逻辑判断

{$or:[{age:18},{age:24}]} === 18||24 $or 逻辑或的情况、$and 逻辑与的情况

{$and:[{price:{$gt:20}},{price:{$lt:100}}]} ===price>20&&price<80

10、正则表达式

db.students.find({name:/三/});
BookModel.find({name:new RegExp('水')})