【问题标题】:Execute a model operation inside a different model hook using mongoose使用 mongoose 在不同的模型钩子中执行模型操作
【发布时间】:2016-08-04 13:22:50
【问题描述】:

我想从ModelA 触发remove 对猫鼬pre.save 钩子内的ModelB 的操作。

基本上任何时候任何ModelA 更新,我都需要删除ModelB 集合:

这是我尝试过的,我没有收到错误但操作永远不会结束:

const mongoose = require('mongoose');
const Schema   = mongoose.Schema;
const ObjectId = Schema.Types.ObjectId;

const permissionSetSchema = require('./permission-set');
const PermissionSet       = mongoose.model('PermissionSet', permissionSetSchema);

const roleSchema = new Schema({
  name       : {  type: String, required: true, unique: true, maxLength: 140 },
  description: {  type: String, maxLength: 300 },
});

roleSchema.post('update', (next, done) => {
  PermissionSet.remove({}, err => {
    if (err) { next(err); }

    next();
  });
});

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    第一个参数是文档。第二个是下一个回调。 应该是:

    roleSchema.post('update', (doc, next) => {
      PermissionSet.remove({}, err => {
        if (err) { next(err); }
    
        next();
      });
    });

    http://mongoosejs.com/docs/middleware.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 2017-06-26
      • 2018-05-31
      • 2012-04-23
      • 1970-01-01
      • 2020-02-26
      • 2014-12-25
      相关资源
      最近更新 更多