猫鼬模式设计
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" 数据。
我想为用户设计库存。 基本上,我尝试创建一个清单,其中包含一个 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" 数据。