【问题标题】:How to save mongoose virtuals如何保存猫鼬虚拟
【发布时间】:2020-10-23 14:39:03
【问题描述】:

谁能提供示例如何保存 mongoose virtuals 以供数据库关联使用?

模型中已经有这个:

const userSchema = new Schema({
    googleId: String,
    name: String,
    email: String,
    password: String,
    credits: {type: Number, default: 0},
});

userSchema.virtual('advertisements', {
    ref: 'advertisements',
    localField: '_id',
    foreignField: '_id',
    justOne: false,
    options: { sort: { name: -1 }, limit: 5 }
  });

mongoose.model('users', userSchema);

在文档中有关于数据填充和retrieval 的信息,但是应该如何正确保存?

必须是user.advertisements.localfield = localfield 左右吗? 或者它是如何工作的?

【问题讨论】:

    标签: node.js express mongoose


    【解决方案1】:

    虚拟是您可以获取和设置的文档属性,但可以 不会持久化到 MongoDB。 getter 对于格式化或 组合字段,而 setter 可用于分解单个字段 值分成多个值进行存储。

    这意味着我们可以仅将 Virtuals 用于数据准备,例如我们可以合并 first namelast name 或使用参考填充文档。

    【讨论】:

      【解决方案2】:

      Mongoose 支持虚拟属性。虚拟属性是属性 方便携带,但不会持久化到 mongodb

      你不能保存虚拟数据,它是唯一的getter

      【讨论】:

        猜你喜欢
        • 2021-01-09
        • 1970-01-01
        • 2021-08-17
        • 2017-04-04
        • 2018-11-29
        • 2016-01-21
        • 2017-12-30
        • 1970-01-01
        • 2020-05-18
        相关资源
        最近更新 更多