Непонятный мангуст - PullRequest
0 голосов
/ 09 июля 2020

Доброе утро, у меня проблема с созданием поля корзины в объекте пользователя, если быть более точным, я определил простую модель

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 name: "mario " cart: Array 0: Object _id: 5f06e8140a3290711bb76820 qty: 4 __v: 0

Как видите, вместо получения массива корзины, который должен содержать ключ продукта со значением 'lamp' и ключ qty со значением 4, я получаю массив, содержащий _ID и qty, почему?

1 Ответ

0 голосов
/ 09 июля 2020

Ошибка в определении схемы. В настоящее время вы определили два объекта JSON в массиве корзины. Попробуйте обновить схему, как показано ниже, чтобы получить ожидаемый результат, как указано в вопросе

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

  cart: [
    {
      qty: { type: Number, required: true },
      product: { type: String, required: true },
    },
  ],
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...