从父模式填充字段

Posted

技术标签:

【中文标题】从父模式填充字段【英文标题】:populate field from parent schema 【发布时间】:2021-05-20 18:18:51 【问题描述】:

我有一个事务架构如下:

  const transactionSchema = mongoose.Schema(  
       amount: Number,
       order: 
          type: mongoose.Schema.ObjectId,
          ref: 'Order'
        
      ,
      
        toJson:  virtuals: true ,
        toObject:  virtuals: true 
      
    );

还有一个Order Schema,其驱动字段如下(每笔交易都与一个Order相关)

const orderSchema = mongoose.Schema(
  
    title: String,
     driver: 
      type: mongoose.Schema.ObjectId,
      ref: 'User'
    )

当我查询(查找)事务时,我需要从用户架构中提取驱动程序名称 我的用户架构如下:

const userSchema = new mongoose.Schema( 名称:字符串,)

这怎么可能?我尝试如下 virtuals 但它没有工作

transactionSchema.virtual('driverName', 
  ref: 'User',
  foreignField: 'name', //name of reference field in Review model
  localField: 'driver' //name of reference in local Model
);

【问题讨论】:

【参考方案1】:

我发现这可以通过深度填充来解决(跨多个级别填充) 根据猫鼬docs

【讨论】:

以上是关于从父模式填充字段的主要内容,如果未能解决你的问题,请参考以下文章

用于填充多个类字段的设计模式

mongoose 模式未在填充字段中注册错误

Mongoose:如何使用来自模式的数据(产品值)使用方法填充另一个模式()中的字段?

猫鼬填充未填充必填字段

如何根据参考/模型填充字段?

如何在 django 中更改模型时填充数据库字段