Mongoose中间件访问其他集合

时间:2014-09-04 09:04:42

标签: node.js mongodb mongoose

我正在使用' pre' '保存'为用户创建的中间件'记录相应的用户对象'文献。

因此有users个集合和userObjects。 插入新的user时,也应插入userObjects文档。

我正在尝试使用' pre'中间件,不知何故这样:

//before inserting a new user
Users.pre('save', function(next) {
    var UserObjects = db.model('userObjects');

    userObjectsIns = new UserObjects({
         'userID': this._id,
         'myObjects':[],
    });

    userObjectsIns.save( function(err) {
        if (err) console.log("ERROR while saving userObjectsIns: " + err);
        next()
    })        
});

显而易见的问题是db不存在。我如何才能到达用户对象'从这个pre中间件中收集?

1 个答案:

答案 0 :(得分:4)

您可以通过this doc实例的model方法访问其他模型:

Users.pre('save', function(next) {
    var UserObjects = this.model('userObjects');

    userObjectsIns = new UserObjects({
         'userID': this._id,
         'myObjects':[],
    });

    userObjectsIns.save( function(err) {
        if (err) console.log("ERROR while saving userObjectsIns: " + err);
        next()
    })        
});