node.js - 如何在 Mongoose 模式中设置大于 0 的最小值?

标签 node.js mongoose

我认为这是一个简单的问题,但我很困惑。 如何将最小值添加到 mongoose > 0?

var customer = new Schema({
  cash: {
    type: Number,
    minimum: 0
  }
});

此代码允许 0 值,但我想做 > 0

我知道,我可以做到这一点

var customer = new Schema({
      cash: {
        type: Number,
        minimum: 0
      },
      validate: {
        validator: function(value) {
          return value > 0;
        },
        message: 'cash need to be > 0'
      },
});

*现金是 float 的,而且可以很小

但是太长了,有没有更简单的方法?

最佳答案

您可以在定义架构时指定最小值。

    var breakfastSchema = new Schema({
  eggs: {
    type: Number,
    min: [6, 'Too few eggs'],
    max: 12
  },
  bacon: {
    type: Number,
    required: [true, 'Why no bacon?']
  },
  drink: {
    type: String,
    enum: ['Coffee', 'Tea'],
    required: function() {
      return this.bacon > 3;
    }
  }
});
var Breakfast = db.model('Breakfast', breakfastSchema);

`

var badBreakfast = new Breakfast({
  eggs: 2,
  bacon: 0,
  drink: 'Milk'
});
var error = badBreakfast.validateSync();
assert.equal(error.errors['eggs'].message,
  'Too few eggs');
assert.ok(!error.errors['bacon']);
assert.equal(error.errors['drink'].message,
  '`Milk` is not a valid enum value for path `drink`.');

badBreakfast.bacon = 5;
badBreakfast.drink = null;

error = badBreakfast.validateSync();
assert.equal(error.errors['drink'].message, 'Path `drink` is required.');

badBreakfast.bacon = null;
error = badBreakfast.validateSync();
assert.equal(error.errors['bacon'].message, 'Why no bacon?');

关于node.js - 如何在 Mongoose 模式中设置大于 0 的最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45031701/

相关文章:

mongodb - Mongoose Geo Near Search - 如何在给定距离内排序?

node.js - 安装 Nodejs v9.0.0 后如何将 npm 从 v5.4.1 升级到最新版本

node.js - nodejs 在本地文件系统和 Amazon S3 文件系统之间切换的最佳方法是什么?

javascript - Listen 不是一个函数

node.js - 如何在 mongodb/mongoose 中分离用户对数据库的访问

javascript - 当key有空格和点时如何在mongodb中查询

javascript - MongoDb:在父级保存中查找插入的子级的生成 ID

javascript - Next.js with Auth0 (using Passport.js) on Serverless Function

json - Vagrant (Saltstack) 如何使用 salt 状态安装package.json?

javascript - 如何在数据库中存储 Mongoose 模式