【问题标题】:Can I store an array which contains a model and number in Mongoose?我可以在 Mongoose 中存储一个包含型号和编号的数组吗?
【发布时间】:2026-02-12 13:15:02
【问题描述】:

我是 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)

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

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    是的,只需将 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]
    })
    

    【讨论】:

      最近更新 更多