Mongoose 模式要求数组可以为空

2024-03-30

我有这个架构

var StuffSchema = new mongoose.Schema({
    _id: { type: String, required: true, unique: true },
    name: { type: String, required: true }
});

mongoose.model('Stuff', StuffSchema);

工作正常。

现在我需要添加另一个包含此的模式“Cargo”

mystuff: { type:[String], ref: 'Stuff', required:true},

也就是说,我希望 mystuff 包含 Stuff 的 id 数组,但是在运行此代码时会失败并出现验证错误

mongoose.model('Cargo').create( some data...)

如果我对 mystuff 字段使用空数组。 如果我将 Cargo 模式更改为

mystuff: { type:[String], ref: 'Stuff'},

但我希望 mystuff 字段是必需的并允许空数组

我能做些什么来实现这一点?


默认情况下创建空数组(另请参见this https://stackoverflow.com/questions/12658152/why-does-mongoose-add-blank-arrays)。属性required: true要求数组中至少有一个元素(源代码 https://github.com/Automattic/mongoose/blob/master/lib/schema/array.js#L108)。您可以删除该属性以获得所需的行为。

(此外,猫鼬分配了一个默认值_id所有架构的类型为 ObjectId 的字段。声明它是不必要的,并且使用字符串并不典型,尽管当然是允许的。)

2017 年 11 月编辑:这是 Mongoose 5 中的候选更改。请参阅https://github.com/Automattic/mongoose/issues/5139 https://github.com/Automattic/mongoose/issues/5139.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongoose 模式要求数组可以为空 的相关文章

  • 如何检查 Json 数组是否包含特定值?

    如何检查 Json 数组是否包含特定值 这是我加载数据的代码 dynamic d JObject Parse number 1000 str string array 1 2 3 4 5 6 Console WriteLine d numb
  • 如何在 WTForms 中使字段有条件可选?

    我的表单验证工作已接近完成 我只有两种情况 我不知道具体如何解决 1 密码字段当然应该是必需的 但我还提供了通过 OAuth 使用 google 或 facebook 帐户登录的可能性 然后名称被预先填充 但我从表单中完全删除密码字段是否有
  • Typescript 和 Mongoose - “this”在实例方法中不可用

    我目前正在将我的 API 从 JS 转换为 TS 然而 我在猫鼬和打字稿方面遇到了一些困难 具体来说 this在我的实例方法中不可用 My code AccountSchema methods comparePassword async f
  • 有没有办法更改 C# 数组内的元组值?

    我正在使用的数组是int 我想在一个方法中创建每个 我假设的 元组的第一个值 然后我想多次修改后两个值 在另一种方法中 例如 int MyArrayGet int myArray int myArray new int 9 9 9 for
  • Oracle存储过程使用数组作为表插入的参数

    我一直在寻找一个明显的例子 但没有运气 抱歉 如果已经回答了 我正在尝试做一些非常简单的事情 一个存储过程 它将获取输入并将它们插入到表中 我希望它获取多行数组并一次全部插入 我认为这很简单 但我还没有找到一个可以展示我的例子 在很多例子中
  • MongoDB,从数组中删除对象

    Doc id 5150a1199fac0e6910000002 name some name items id 23 name item name 23 id 24 name item name 24 有没有办法从数组中提取特定对象 IE
  • 字符串插值搜索

    对于那些不熟悉插值搜索的人来说 这是一种在排序数组中搜索值的方法 可能比二分搜索更快 您查看第一个和最后一个元素 并 假设数组的内容均匀分布 线性插值以预测位置 例如 我们有一个长度为 100 的数组 其中 array 0 0 和 arra
  • Java的数组indexOf在哪里?

    我一定错过了一些非常明显的东西 但我已经搜索遍了 但找不到这个方法 有几种方法可以使用Arrays http download oracle com javase 1 5 0 docs api java util Arrays html实用
  • 将 C 数组作为 char* 函数参数传递

    我有一些使用以下变量声明维护的代码 char tmpry 40 它与此功能一起使用 char SomeFunction char tmpryP Do stuff 函数调用是 SomeFunction tmpry 0 我非常确定这与以下内容相
  • 匹配数组中的对象并合并

    UPDATE 我有一个名为的对象数组cars包含 li 标签 其中包含有关汽车的属性数据 例如价格 汽车类型等 我的目标是 如果这些汽车符合某些标准 则将它们合并到一个列表中 要求 快速性能 保持相同的汽车数组结构 Main Goal Ma
  • 使用 for 循环 Python 为数组赋值

    我正在尝试将字符串的值分配给不同的数组索引 但我收到一个名为 列表分配超出范围 的错误 uuidVal distVal uuidArray distArray for i in range len returnedList for beac
  • 检查 bash 中是否存在关联数组元素

    在 bash 脚本中 我在变量中有一个区域设置 如下所示 locale fr ma 我也有一个像这样的关联数组 declare A new loc map new loc fr ma en ma new loc el gr en gr ne
  • Play Framework 2.3 (Scala) 中的自定义 JSON 验证约束

    我设法使用自定义约束实现表单验证 但现在我想对 JSON 数据执行相同的操作 如何将自定义验证规则应用于 JSON 解析器 示例 客户端的 POST 请求包含用户名 username 我不仅要确保该参数是非空文本 而且还要确保该用户确实存在
  • 如何在 Microsoft 报告中显示字节数组中的图像

    我使用报表文件和 ReportViewer 控件来显示在运行时从对象动态加载数据的报表 我需要显示一个以字节数组形式存储在对象中的图像 PictureBox 的值当前设置为 First Fields ImageData Value dtst
  • 如何在 Spring Boot 中使用@NotNull?

    我有这样的依赖
  • 关于 ArrayList[] x 的 Java 问题

    我一直对 ArrayList 数组有这个问题 也许你能帮忙 declare in class private ArrayList
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有
  • Laravel 5 中的自定义验证器

    我正在将 Laravel 应用程序从 4 升级到 5 但是 我有一个自定义验证器 但无法运行 在L4中 我做了一个验证器 php文件并将其包含在全局 php using require app path validators php 我尝试
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 比较数组中的文件、从文本文件中删除行、函数、日志记录

    所以我创建了这两个数组 Approved Shares 和 Current Shares Reads Approvedshare txt and makes the txt file into an array public objFSO

随机推荐