我正在阅读这本书MongoDB in Action。我有一个关于Chapter 4: Document-oriented data
的问题。
在Page 58
上,本书给出了多对多关系的一个例子。它提供了Product
文档和Category
文档。
我理解这里的多对多关联。基本上,Product
可以有一个Category
_id数组的键,等等。所以我不是想问这样的问题MongoDB Many-to-Many Association
我的问题是关于Page 61
,本书提供了两个关于查询多对多关系的示例查询。这是两个查询:
=>
是什么意思?我以为=>
只存在于Ruby驱动程序中
用法。
category
中的category['_id']
是什么?这是一个集合吗?
product
中的product['category_ids']
是什么?
如上所述第一个查询与第一个查询相关的第一个查询如何?
本书没有详细解释这两个问题。
有人可以解释更多关于查询多对多的内容吗?
答案 0 :(得分:3)
看起来作者使用的是除本机MongoDB javascript mongo客户端之外的驱动程序语言。此外它也有意义,因为书的描述说作者维护了C和Ruby Mongo的驱动程序。
是=>
是特定于语言驱动程序的表示法。不是javascript。似乎就像在说:db.products.find({_id: aCategoryId})
。它实际上是Ruby Hash notation。
该示例中的category
看起来只代表您已检索过的类别文档。在这种情况下,它将是园艺类别的文档。它只是说“找到此类别ID在产品category_ids数组
与上一个问题类似。 product
是您已检索过的文档。查询是“查找任何类别的文档,其ID在此类别ID的此产品数组中。
category
如果您使用以下内容检索它,则会是园艺类别:var category = db.category.findOne({slug: "gardening-tools"})