对于我的项目,我创建了一个userSchema,它简化如下:

var userSchema = new Schema({
    _id: String,
    screenname: {type: String, required: false, default: "equal _id"},
});

用户有一个_id,这是一个字符串,也是他的用户名.

 screenname: {type: String, required: false, default: _id},

但当然,id并没有定义.

如何将默认值设置为与另一个值相等?

推荐答案

使用prehere

userSchema.pre('save', function (next) {
    this.screenname = this.get('_id'); // considering _id is input by client
    next();
});

Mongodb相关问答推荐

如何在MongoDB中正确解析佛年?

如何使用ID数组对一个集合中的金额求和并更新另一个集合中的字段?

为什么数组长度0被认为是Mongoose中排序中最大的数字

MongoDB - 将数组元素转换为新字段

MongoDB 根据最新日期查询多个不同的值

发布到 MongoDB 时生成的附加id字段

在 ExpirePolicy 之后从 Store 中删除元素

如何过滤查找mongodb的结果

使用新字段插入数据或使用 updateOne mongodb 有条件地更新

Mongoose $inc 枚举验证失败

为什么使用整数作为 pymongo 的键不起作用?

是否可以迭代 mongo 游标两次?

Mongo DB中的Upserting和Id问题

NoSql 参考数据

django 和 mongodb 是否使迁移成为过go ?

MongoDB 中的所有列

没有参考选项的mongoose填充字段

填充mongoose后查找

Mongoose - 获取 _id 列表而不是具有 _id 的对象数组

错误:需要数据和盐参数