javascript - 如何根据条件设置 Mongoose 模式的默认属性值

标签 javascript node.js mongodb mongoose

我有这个 Mongoose 模式:

var UserSchema = new Schema({
    "name":String, 
    "gender":String,
});

我想添加另一个名为图像的字段。如果性别为 male,则该图像将具有默认值;如果性别为 female,则该图像将具有另一个默认值。我发现可以设置默认值:

image: { type: ObjectId, default: "" }

但是我没有找到如何设置它的条件。

最佳答案

您可以使用 document middleware 来实现此目的.

pre:save Hook 可用于在文档保存之前设置一个值:

var UserSchema = new Schema({
    "name":String, 
    "gender":String,
});

UserSchema.pre('save', function(next) {
  if (this.gender === 'male') {
    this.image = 'Some value';
  } else {
    this.image = 'Other value';
  }

  next();
});

关于javascript - 如何根据条件设置 Mongoose 模式的默认属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36319809/

相关文章:

javascript - 如何从 HTML 标签 BODY 或 Div 解析 cid 值?

node.js - 上传带有元数据、 Node 的 blob

mongodb - 保护文档样式数据库(MongoDb、CouchDb、RavenDb)以供客户端(浏览器)访问

javascript - 如何动态地将CSS媒体类型添加到页面

java - Processing sketch 在 Java 模式下工作正常,但在 Processing.js 下不行

node.js - intel XDK目录浏览

javascript - Mongoose 多个数据库 TypeError : users. 模型不是函数

node.js - 使用 MongoDB 在 Node.js 中扩展,我应该什么时候一次查询所有 ID,还是并行查询每个 ID?

Django 模板中动态生成表单的 Javascript 验证

node.js - Nodejs,将 bin 文件作为 BYTEA 存储到 pgsql 中(损坏的文件)