猫鼬:如何将附加字段添加到子文档数组中

Mongoose: How to add additional field into subdocument array

我有一个关于 mongoDB 的问题,即猫鼬:

假设我有 2 个模型:1) 产品模型 2) 用户模型

const ProductSchema = new Schema({
  title: String,
  description: String,
  product_type: String,
  image_tag: String,
  created_at: Number,
  price: Number
});
const Product = module.exports = mongoose.model('product', ProductSchema);

const UserSchema = new Schema({
  login: String,
  email: String,
  password: String,
  purchases: [{
    type: Schema.Types.ObjectId,
    ref: 'product'
  }]
});
const User = module.exports = mongoose.model('user', UserSchema);

当用户购买一些商品时,我只是将产品添加到用户模型中的购​​买数组(使用推送方法)。如果我需要将购买的 ID 与其完整描述相匹配,我会使用 populate。

问题是我需要以某种方式控制用户每次购买的数量 -> 我需要在数组内的每个购买对象中添加额外的字段...比如数量或总数,就像这样:

const UserSchema = new Schema({
     ...
      purchases: [{
        type: Schema.Types.ObjectId,
        ref: 'product',
        quantity: {
          type: Number,
          default: 1
        }
      }]
    });

我卡住了,不知道如何实现它。上面的示例不起作用。

试试这个,这个方法一定行得通:

const UserSchema = new Schema({
    purchases: [{
            ref: {
                 type: Schema.Types.ObjectId,
                 ref: 'product'
            },
            quantity: {
              type: Number,
              default: 1
            }
          }]
 });