不知名的猫鼬

时间:2020-07-09 10:06:37

标签: node.js arrays object mongoose

早上好, 我在用户对象中创建购物车字段时遇到问题,更确切地说,我定义了一个简单的模型

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({

name:{
    type:String,
    required: true
},

cart:[

    {qty:{type:Number,required:true}},
    {product:{type:String,required:true}}
    ]
   });

   module.exports= mongoose.model('user',userSchema);

当我尝试使用上述模型在数据库中插入数据时,发生意外行为: 如果我使用以下代码将数据发送到数据库:

    const cart  = {product:'lamp', qty:4};

    const utente = new User({
    name:'mario',
    cart:cart
    
    });
    
    
    utente.save()
    

它将被保存为:

_id:5f06e8140a3290711bb7681f 名称:“ mario” 购物车:数组 0:对象 _id:5f06e8140a3290711bb76820 数量:4 __v:0

您可以看到,而不是获得包含带有“灯”的产品密钥的购物车阵列 值和数量为4的数量键,我得到一个包含_ID和数量的数组,为什么?

1 个答案:

答案 0 :(得分:0)

架构定义中存在问题。当前,您已经在购物车数组中定义了两个JSON对象。请尝试按如下所示更新架构以获得问题中提到的预期结果

const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },

  cart: [
    {
      qty: { type: Number, required: true },
      product: { type: String, required: true },
    },
  ],
});