首先是基础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)