最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Mongoose Schema参考值,默认为null

运维笔记admin12浏览0评论

Mongoose Schema参考值,默认为null

Mongoose Schema参考值,默认为null

我试图在我的模型中将名为grade的模式属性引用到另一个模型的id。但是有一些例子我想把它保留为null。我试图保持默认为null并尝试但我收到以下错误:

ValidationError: User validation failed: grade: Cast to Array failed for value "" at path "grade"

以下是我的代码:

import * as mongoose from 'mongoose';
const userSchema = new mongoose.Schema({
  username: String,
  email: { type: String, unique: true, lowercase: true, trim: true },
  password: String,
  school: { type: String, default: null },
  mobile: Number,
  grade: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Grade', default: null }],
  role: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Role' }],
  company: { type: String, default: null },
  designation: { type: String, default: null },
  active: { type: Number, default: 2 },
  url: { type: String, default: null },
  admin: { type: Number, default: 0},
  created: { type: Date, default: Date.now },
  last_active: { type: Date, default: Date.now }
});
const User = mongoose.model('User', userSchema);
export default User;

有没有办法可以将默认值保持为null虽然引用它?

回答如下:

在MongoDB或NoSQL数据库中,不需要将默认值设置为NULL,因为它基于Schemaless架构,但是在关系数据库中,您可以这样做。只要您没有该字段的值,此列就不应该存在于该行中。

检查以下示例中的2行架构:

{username: "jack",  email: "[email protected]", password: "123"}
{username: "msoliman",  email: "[email protected]", password: "123", school: "AB"}

您注意到第一行根本没有学校,这与您在关系数据库学校中保存为NULL完全相同。

我希望这有助于你理解我的意思,如果没有,请发表评论。如果它有帮助请不要忘记评价我的答案

发布评论

评论列表(0)

  1. 暂无评论