猫鼬模式设计

Mongoose schema designing

我想为用户设计库存。 基本上,我尝试创建一个清单,其中包含一个 user_id 和一个包含每个项目数量的项目列表。

有我的 collection 'Item' 的架构:

 var ItemSchema = new mongoose.Schema({
    name: String,
    image: String,
    effects : {
        attack: String,
        defense: String,
        life: String
       }
    });

我无法设计库存 collection,我可以在其中轻松更新每个项目的数量并添加新项目。

可能您想要的是 "Items" 的目录,例如您描述的帽子、手套、枪支等

每个项目都有自己的 ID,然后您必须将该项目引用到您的用户清单架构中:

var UserInventorySchema = new Schema({
        userId:{ type:Schema.Types.ObjectId,
               ref: 'User'
        },
        items:[{
        _id:{
            type:Schema.Types.ObjectId,
            ref: 'Item' // this is the name for your Item Schema 
        },
        Amount:{
            type: Number,
            default:0
        }
    }]
});

在这种情况下,您将有更多的写入数据库和更少的读取,如果您有更多的读取,我建议您坚持使用相同的模型,但只需添加您不会的名称'不要填充以恢复所有 "item" 数据。