【问题标题】:How to call mongoose's CRUD methods inside an instance method如何在实例方法中调用 mongoose 的 CRUD 方法
【发布时间】:2016-02-26 00:16:18
【问题描述】:

mongoose documentation 显示此示例以创建新文档

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 和其他类似方法?

【问题讨论】:

  • 一般来说,从实例方法中调用 Tank.create 可能不是最佳实践。您可以使用this 引用该实例并在其上调用save 以更新该实例,但不应真正从另一个坦克的实例创建新坦克。

标签: mongodb mongoose mongoose-schema


【解决方案1】:

这可行,但看起来像个 hack:

this.constructor.create()

编辑:这些是自定义实例方法(未内置),因此需要调用模型。

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

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2018-09-15
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 2016-08-30
    • 2014-11-21
    相关资源
    最近更新 更多