2016-02-25 5 views
2

mongoose documentation показывает этот пример, чтобы создать новый документКак вызывать методы CRUD Mongoose внутри метода экземпляра

var Tank = mongoose.model('Tank', yourSchema); 

var small = new Tank({ size: 'small' }); 
small.save(function (err) { 
    if (err) return handleError(err); 
    // saved! 
}) 

// or 

Tank.create({ size: 'small' }, function (err, small) { 
    if (err) return handleError(err); 
    // saved! 
}) 

Проблема, которую я имею, что я до сих пор не имеют Tank. Я определяю метод экземпляра, и я хочу сделать внутри него Tank.create(). Как я могу назвать это create и другими подобными методами из метода экземпляра?

+0

В целом, это не лучший способ вызвать Tank.create из метода экземпляра. Вы можете обратиться к экземпляру с 'this' и вызвать' save', чтобы обновить экземпляр, но создание нового резервуара не должно происходить из экземпляра другого резервуара. – clocksmith

ответ

1

Это работает, но кажется, как взломать:

this.constructor.create()

Edit: Это пользовательские методы экземпляра (не вмонтированные в), поэтому необходимо, чтобы модель можно назвать.

this.model('Tank').create()