mongoose学习笔记

首先是基础crud操作

  • 查询
    • 简单查询
    • 条件查询
  • 插入
  • 更新

查询

简单查询

mongoose:

Model.findOne({ age: 5}, function (err, doc){
  // doc 是单个文档
});

条件查询

  • (>) 大于 - $gt
  • (<) 小于 - $lt
  • (>=) 大于等于 - $gte
  • (<= ) 小于等于 - $lte

mongodb语法:

db.col.find({"key" : {$gt : 100}})

类似于

Select * from col where key > 100;

mongoose语法:

比较特殊,有两种模式,参考官方文档

  • With a JSON doc 模式
Person.find({
    occupation: /host/,   //正则表达式
    'name.last': 'Ghost',
    age: { $gt: 17, $lt: 66 }, //条件查询-大于小于
    likes: { $in: ['vaporizing', 'talking'] } //条件查询-likes字段是否属于数组
  })
.skip(10) //跳过10条
.limit(10) //查询10条
.sort({ occupation: -1 }) //排序:以occupation字段降序
.select({ name: 1, occupation: 1 }) 
.exec(callback);
  • Using query builder模式
Person
.find({ occupation: /host/ })
.where('name.last').equals('Ghost')
.where('age').gt(17).lt(66)
.where('likes').in(['vaporizing', 'talking'])
.limit(10)
.sort('-occupation')
.select('name occupation')
.exec(callback);

插入

mongoose语法:

let mailCode = new Model({
          code:code,
          email:email,
          time:moment().format('YYYY-MM-DD HH:mm:ss'),
          timestamp:moment().format("X")//时间戳
        });
await mailCode.save();

更新

mongoose语法:

  • With a JSON doc 模式
Model
. update(查询条件,{ $set: { name: 'jason borne' }},callback)
  • Using query builder模式
Model
.where({a:"a"}) //查询条件 可以使用json模式
.update(新内容,callback)

你可能感兴趣的:(mongoose学习笔记)