MongoDb

云数据库 MongoDB Atlas

MongoDb4.0 新特性

事务 transaction

  • 原子性:指的是一个事务内,有多次操作的情况下,要么都执行,要么都不执行。
  • 一致性:数据库事务执行前后保持一致性,也就是事务执行前后都能保证是正确的,并满足所有预先设定的限制条件。
  • 隔离型:多个事务之间的执行是相互隔离的,互不影响。
  • 持久性:事务处理完毕之后,对数据的改变是永久的,即使发生了系统故障,这些修改也不应该丢失,应该是持久的!

跨文档ACID事务

演示:

ClientSession session = client.startSession();

session.startTransaction();   开启事务

session.commitTransaction();  提交事务

Mongooose

mongoose定义模型

// app/model/user.js
'use strict';

module.exports = app => {
  const mongoose = app.mongoose;
  const Schema = mongoose.Schema;

  const UserSchema = new Schema({
    username: { type: String },
    password: { type: String },
  }, { timestamps: { createdAt: 'createTime', updatedAt: 'updateTime' } });

  UserSchema.statics = {
    detail: function(id) {

    },
  };

  return mongoose.model('User', UserSchema);
};

mongoose高级查询

  • $or:或条件查询

    return await ctx.model.User.findOne({
       $or: [{ nickname: path }, { _id: path }],
    });
    

Model操作

  • 查询列表:Model.find()
  • 查询详情:Model.findById(id)
  • 添加:const createUser = new Schame(data); createUser.save()

results matching ""

    No results matching ""