需要一个字段,如果另一个不存在

时间:2020-08-22 17:58:08

标签: node.js mongodb https

要将消息发布到MongoDB,我需要发送带有必填text字段的架构。但是,即使media字段也存在(作为可选字段),您也可以发送没有text字段的请求。我该怎么办?这是代码:

var mongoose = require('mongoose')
var Schema = mongoose.Schema
var Message = new Schema({
   text: {type: String, required: true},
   media: {type: Object, required: false}
})

1 个答案:

答案 0 :(得分:2)

您可以使用提到的here

进行功能验证来尝试此操作
var mongoose = require('mongoose')
var Schema = mongoose.Schema
var Message = new Schema({
   text: {
    type: String,
    required: function() {
      return !this.media;
    }
   },
   media: {
    type: Object, 
    required: function() {
      return !this.text;
    }
})