当前位置: 首页 > 知识库问答 >
问题:

如何在Mongoose模式中设置数组大小限制

艾俊晖
2023-03-14

请您告诉我,在创建Mongoose模式时,有什么方法可以限制数组的大小。例如

 var peopleSchema = new Schema({
    name: {
        type: String,
        required: true,
        default: true
    },
   /* here I want to have limit: no more than 10 friends.
    Is it possible to define in schema?*/
    friends: [{
        type: Schema.Types.ObjectId,
        ref: 'peopleModel'
    }]
})

共有1个答案

解明辉
2023-03-14

只需对架构设置做一个小小的调整,您就可以添加一个validate选项:

var peopleSchema = new Schema({
  name: {
    type: String,
    required: true,
    default: true
  },
  friends: {
    type: [{
      type: Schema.Types.ObjectId,
      ref: 'peopleModel'
    }],
    validate: [arrayLimit, '{PATH} exceeds the limit of 10']
  }
});

function arrayLimit(val) {
  return val.length <= 10;
}
 类似资料:
  • 问题内容: 您能否告诉我在创建Mongoose模式时是否有任何方法可以设置数组大小的限制。例如 问题答案: 稍微调整一下架构设置,即可添加验证选项:

  • 问题内容: 我已经读过有关限制目录大小的信息-例如创建大文件,格式化,装入等等。但这一切都非常复杂。是否存在实用程序或其他对现有目录设置限制的工具? 问题答案: 配额基于文件系统,但是您始终可以创建虚拟文件系统,并使用usrquota和/或grpquota标志将其安装在特定(空)目录上。 步骤将为: 创建安装点 创建一个充满/ dev / zero的文件,其大小足以达到您要为虚拟文件系统保留的最大

  • 问题内容: 假设采用以下架构,我尝试使用Mongoose保存一些GeoJSON数据 这就是我尝试保存文档的方式 但是,我在数据库中得到的是 看起来整个位置标签和数据都丢失了。这是定义架构的错误方法还是保存文档的错误方法? 问题答案: 当使用在嵌入式对象中命名的字段时,您需要使用一个对象来定义其类型,或者Mongoose认为您正在定义对象本身的类型。 因此,将您的架构定义更改为:

  • 问题内容: 我正在试验使用MySQL的SQL的PostgreSQL,我只希望使用这段有效的SQL代码创建一个表: 我得到了错误 我已经在网上进行搜索,但没有找到答案,而且我似乎在PostgreSQL手册中找不到答案。我究竟做错了什么? 我明确地想对可插入“ pk_flat_id”字段中的位数设置限制 问题答案: 我明确地想对可插入“ pk_flat_id”字段中的位数设置限制 您当前的表定义并 没

  • 在Log4J2中,当大小超过指定阈值时,我希望修剪写入控制台附加器的消息的结尾。 知道吗?

  • 我想问您,除了像(大小为30个元素)这样一开始就设置数组元素数的限制之外,是否还有一种方法可以在java中设置数组元素数的限制。您能在1到10个元素之间设置限制吗? (或者类似的东西)。 我的第二个问题也许更可行的是,你能不能给元素本身设置一个限制,比如当你需要在之后对它们进行排序时,如果一个元素>=100就会给出错误。类似于: