如何使用外键数组在没有 _id 的猫鼬中填充?

Posted

技术标签:

【中文标题】如何使用外键数组在没有 _id 的猫鼬中填充?【英文标题】:How to populate without _id in mongoose with array of foreign key? 【发布时间】:2021-01-29 12:50:23 【问题描述】:

我知道我可以在没有 _id 的情况下在 mongoose 中使用 virtual 来填充。 但是我的情况是这样的:

const storeSchema = new mongoose.Schema(
  store_id: Number,
  store_name: String,
  cart_tokens: [String],
)

const cartSchema = new mongoose.Schema(
  cart_token: String,
  items:  type: Array ,
)

我在 store 模式中的 cart_tokens 是一个数组而不是一个值。 我希望 store 的结果是这样的:


   store_id: xxx,
   store_name: xxx,
   carts:[
      
          cart_token: xxx,
          items: [...],
      ,
      ...,
      ...
   ]

可以这样做吗?

【问题讨论】:

【参考方案1】:

这会起作用:

const mongoose = require('mongoose');
    const Schema = mongoose.Schema;
    
    let cartSchema = new Schema(
      cart_token: String,
      items:  type: Array ,
    )
    
    
    let storeSchema = new Schema(
      store_id: Number,
      store_name: String,
      cart_tokens: [cartSchema]
    );
    
    module.exports = mongoose.model('Cart', cartSchema);

【讨论】:

以上是关于如何使用外键数组在没有 _id 的猫鼬中填充?的主要内容,如果未能解决你的问题,请参考以下文章

如何仅在猫鼬中使用聚合填充嵌套在对象数组中的字段?

如何在同一组的猫鼬中找到 $count?

如何在猫鼬中找到最新的子文档

如何在猫鼬中更新嵌套数组值

如何使用聚合在猫鼬中对文档数组进行分页?

如何填充数组内的对象和猫鼬中的另一个数组中的所有用户字段