3

我正在为这个问题在 MongoDB 上寻找一个好的解决方案:
有一些类别,每个类别都有 X 项。
但是有些项目可以在“许多”类别中!

我在 Unix 系统上寻找类似符号链接的东西,但我找不到它。

我认为一个好主意是:
“Category1/item1”是对象,“category2/item44232”只是对“item1”的引用,所以当我更改“item1”时,它也会更改“item44232”。

我查看了 MongoDB 数据模型文档,但没有真正的解决方案。

谢谢您的答复 !

4

2 回答 2

1

在 RDBMS 中,您使用连接表来表示一对多关系;在 MongoDB 中,您使用数组键。例如,每个产品都包含一个类别 ID 数组,并且产品和类别都有自己的集合。如果你有两个简单的类别文件

{ _id: ObjectId("4d6574baa6b804ea563c132a"),
title: "Epiphytes"
}

{ _id: ObjectId("4d6574baa6b804ea563c459d"),
title: "Greenhouse flowers"
}

那么属于这两个类别的产品将如下所示:

{ _id: ObjectId("4d6574baa6b804ea563ca982"),
name: "Dragon Orchid",
category_ids: [ ObjectId("4d6574baa6b804ea563c132a"),
ObjectId("4d6574baa6b804ea563c459d") ]
}

更多信息: http: //docs.mongodb.org/manual/reference/database-references/

于 2013-08-27T13:16:53.597 回答
0

试着从里到外看问题:不要让项目在类别中,而是让项目列出它们所属的类别。

您将能够轻松找到属于一个类别(甚至多个类别)的所有项目,并且没有重复,也不需要更新同一项目的许多实例。

这可以非常快速和高效,尤其是在您为类别列表编制索引时。查看多键索引

于 2013-08-27T13:07:35.613 回答