猫鼬中的一对多映射,如何接收和处理?

时间:2013-07-18 01:23:48

标签: node.js mongodb mongoose

我遇到的问题是使用mongoose(Mongodb)进行一对多映射。一个是订单(买方数据),其中许多是商品(价格,数量等)。

1)我应该如何为订单和项目创建架构,比如我应该将订单中的项目放入数组中吗?

2)所有数据都在一个帖子函数中吗?

我放牧你可以使用ObjectId链接多个到一个,但我不知道如何。

1 个答案:

答案 0 :(得分:15)

由于订单听起来会有相对较少的商品,最简单的事情可能只是商品ID列表:

var OrderSchema = new mongoose.Schema({
    items: [{type: mongoose.Schema.Types.ObjectId, ref: 'Item'}]
});

var ItemSchema = new mongoose.Schema({
    price: Number,
    quantity: Number
});

大多数用户界面都不会在单个POST功能中构建整个订单,因此最好允许创建订单,然后通过order.items.push(itemId)单独向其添加商品。