Мангуст не сохраняет все поля

#javascript #node.js #mongoose

#javascript #node.js #мангуст

Вопрос:

Я пытаюсь сохранить новую запись документа, и некоторые из полей опущены, и я не смог понять, почему.

Здесь я устанавливаю свой объект order

 var obj = new Order(orderObj);
console.log('orderObj', orderObj);
console.log('obj', obj);
  

вывод из console.log:

 orderObj { customerId: '5806e2a1759fd9ad7a1f60eb',
  products: 
   [ { productId: '5806e7e3d0073cb4d2946aad',
       customerPrice: 100,
       notes: 'test',
       originalPrice: 99.95,
       priceOverride: true } ],
  notes: 'some optional order notes',
  createdBy: 'test',
  total: 99.95 }

obj { customerId: 5806e2a1759fd9ad7a1f60eb,
  notes: 'some optional order notes',
  createdBy: 'test',
  _id: 5808171e802121505e33b252,
  shipped: false,
  shippedDate: 2016-10-20T01:00:14.019Z,
  status: 'Created, Not Shipped',
  products: 
   [ { productId: 5806e7e3d0073cb4d2946aad,
       _id: 5808171e802121505e33b253,
       quantity: 1 } ] }
  

Вот моя схема:

 var orderSchema = new mongoose.Schema({
  customerId: { type: mongoose.Schema.Types.ObjectId, ref: 'Customer'},
  products: [{
    productId: { type: mongoose.Schema.Types.ObjectId, ref: 'Product'},
    quantity: { type: Number, default: 1 },
    originalPrice: { Type: Number },
    customerPrice: { Type: Number },
    priceOverride: { Type: Boolean, default: false },
    notes: { Type: String }
  }],
  notes: String,
  status: { type: String, default: "Created, Not Shipped" },
  orderDate: { type: Date },
  shippedDate: { type: Date, default: Date.now },
  shipped: { type: Boolean, default: false },
  total: {Type: Number, default: 0.00 },
  createdBy: { type: String }
}, schemaOptions);
  

Я не могу понять, почему поля total и product (originalPrice, priceOverride) удаляются из объекта экземпляра схемы мангуста.

Ответ №1:

Конечно, я понял это сразу после того, как опубликовал этот вопрос. Тип в схеме был указан как Type вместо type.

Ответ №2:

[этот ответ предназначен для записи] У меня была такая же проблема, и в схеме, где maxconnections и roomNo не сохранялись, у меня была схема

 maxconnections: {type: Number | String },
roomNo: {type: Number | String },
  

изменил его на

 maxconnections: {type: Number },
roomNo: {type: String},
  

и теперь он работает нормально (!._.)

Ответ №3:

Кроме того, при отправке запроса с помощью postman используйте content-type как JSON

В противном случае данные в полях не будут сохранены

введите описание изображения здесь