4

我正在阅读MongoDB in Action一书。我有一个关于Chapter 4: Document-oriented data.

关于Page 58,本书给出了一个多对多关系的例子。它提供Product文件和Category文件。

产品

产品_1

产品_2

类别

类别_1 类别_2


我的问题

我理解这里的多对多关联。基本上,Product可以有一个带有Category_id数组的键等。所以我不想问这样的问题MongoDB Many-to-Many Association

我的问题是关于Page 61,书中给出了两个关于查询多对多关系的示例查询。这是两个查询:

两个查询

  1. 是什么=>意思?我认为=>只存在于 Ruby 驱动程序使用中。

  2. category里面是什么category['_id']?是收藏吗?

  3. product里面是什么product['category_ids']

  4. Gardening Tools category如上所述,第一个查询与第一个查询有何关系?

这本书没有详细解释这两个查询。

有人可以解释更多关于查询多对多的信息吗?

4

1 回答 1

3

看起来作者使用的是驱动程序语言而不是本机 MongoDB javascript mongo 客户端。这也是有道理的,因为书中的描述说作者同时维护 C 和 Ruby Mongo 驱动程序。

  1. 是的,这=>是一种语言驱动程序特定的符号。不是javascript。似乎就像在说:db.products.find({_id: aCategoryId})。它实际上是一个Ruby 哈希表示法

  2. category示例中的 看起来仅代表您已经检索到的类别文档。在这种情况下,它将是园艺类别的文档。它只是说“查找此类别 id 在产品 category_ids 数组中的所有产品

  3. 与上一个问题类似。product是您已经检索到的文档。查询是说“在此产品类别 ID 数组中查找其 id 为的任何类别文档。

  4. category如果您使用以下内容检索它,则将是园艺类别:var category = db.category.findOne({slug: "gardening-tools"})

于 2012-07-07T23:31:46.750 回答