首页 > 解决方案 > 我可以在 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)

我有一个 Account 模型:

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)

在帐户模型中,我希望“项目”参数存储项目模型的数组和一个表示项目数量的数字。请让我知道这是否可能,或者这甚至是一个理想的模型,以及我是否应该改变它。谢谢你。

标签: node.jsmongodbmongoose

解决方案


是的,只需将 accout Schema 中的项目类型设置为项目模型

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]
})

推荐阅读