猫鼬中间件访问其他集合

skm*_*kme 2 mongoose mongodb node.js

我正在使用“预”“保存”中间件为“用户”文档创建相应的“ userObjects”文档。

所以有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()
    })        
});
Run Code Online (Sandbox Code Playgroud)

明显的问题是db不存在。如何从此pre中间件中访问“ userObjects”集合?

Joh*_*yHK 5

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

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()
    })        
});
Run Code Online (Sandbox Code Playgroud)