Mongoose模式设计

时间:2015-03-17 17:52:07

标签: node.js mongoose

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

我的收藏品的架构'项目' :

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

我没有设法设计库存集合,我可以轻松更新每件商品的数量并添加新商品。

1 个答案:

答案 0 :(得分:1)

你可能想要的是有一个" 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
        }
    }]
});

如果你有更多的数据库写入和更少的读取,如果你有更多的读取,我建议你坚持使用相同的模型但只是添加以你赢得的方式命名并填充所有"项目"数据