Могу ли я сохранить массив, содержащий модель и номер в Mongoose?

#node.js #mongodb #mongoose

#node.js #mongodb #mongoose

Вопрос:

Я новичок в mongodb и mongoose, и я хотел знать, возможно ли, чтобы схема хранила массив, содержащий модель вместе с номером.

У меня есть модель элемента следующим образом:

 var mongoose = require('mongoose')
var Schema = mongoose.Schema

var item = new Schema({
    name: {type: String, required: true},
    price: {type: Number, required: true},
    date: {type: Date, default: Date.now},
})


module.exports = mongoose.model('Item', item)
  

И у меня есть модель учетной записи:

 var mongoose = require('mongoose')
var Schema = mongoose.Schema
var ObjectId = mongoose.Schema.Types.ObjectId

var account = new Schema({
    name: {type: String, required: true},
    id: {type: Number, required: true},
    ph_no: String,
    items: [[{type: ObjectId, ref: 'Item'}, {type: Number, default: 1}]]
})

module.exports = mongoose.model('Account', account)
  

В модели учетной записи я хочу, чтобы параметр «items» сохранял массив модели товара и число, которое относится к количеству товара.
Пожалуйста, дайте мне знать, возможно ли это или это даже идеальная модель, и должен ли я ее изменить или нет.
Спасибо.

Ответ №1:

Да, просто укажите тип элемента в схеме accout для модели элементов

var itemModel = require(<your_item_model>)

 var account = new Schema({
    name: {type: String, required: true},
    id: {type: Number, required: true},
    ph_no: String,
    items: [itemModel]
})