首页 文章

Mongoose:如何在子文档数组中添加其他字段

提问于
浏览
0

我有一个关于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与其完整描述相匹配,我会使用填充 .

问题是我需要以某种方式控制用户进行的每次购买的数量 - >我需要在数组中的每个购买对象中添加额外的字段...类似于数量或总数,如:

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

我陷入困境,并不知道如何实现这一点 . 上面的例子不起作用 .

1 回答

  • 0

    试试这个,这种方式肯定会起作用:

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

相关问题