Mongodb Mongoose-instance方法更新模型,这是好的实践吗?

Mongodb Mongoose-instance方法更新模型,这是好的实践吗?,mongodb,mongoose,Mongodb,Mongoose,我使用了一些mongoose模型,试图封装一些业务逻辑,而不是在我的应用程序中传播。例如: MySchema.methods.doSomethingAndUpdateCount = function (somedata) { //Do something to model here using somedata this.someCount ++; this.save(); }; 不过,我今天又看了一遍,我不确定这是否真的是一个好的做法。首先

我使用了一些mongoose模型,试图封装一些业务逻辑,而不是在我的应用程序中传播。例如:

 MySchema.methods.doSomethingAndUpdateCount = function (somedata) {
        //Do something to model here using somedata
        this.someCount ++;
        this.save();
 };
不过,我今天又看了一遍,我不确定这是否真的是一个好的做法。首先,它并没有真正为应用程序中使用这种方法来处理错误的部分提供一种方法。问题可能在于
this.save()-可能这不应该在实例方法中,而是由方法的使用者调用。所以

  • 使用实例方法更新实例数据是否是一种良好的做法
  • 如果是这样,您应该调用
    this.save()来自实例方法,还是在使用代码时执行
    
  • 在这种情况下,您应该如何处理错误

一般概念很好,但是您的实例方法应该支持一个回调参数,您可以提供该参数来另存为this.save(callback)以便向客户通知错误。

作为设计反馈的另一点,通常方法名称中不应包含“和”字样。在架构上,设计出最好、最优雅的系统,因此每种方法只做一件事。