繁体   English   中英

MongoDB - 查询多对多关系如何工作?

[英]MongoDB - How does query for many-to-many relation work?

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

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

产品

product_1

product_2

类别

category_1category_2


我的问题

我理解这里的多对多关联。 基本上, Product可以有一个Category _id等数组的键。所以我不是想问一个类似MongoDB多对多关联的问题

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

两个问题

  1. =>是什么意思? 我以为=>仅存在于Ruby驱动程序用法中。

  2. 什么是categorycategory['_id'] 这是一个集合吗?

  3. 什么是productproduct['category_ids']

  4. 第一个查询如何与第一个查询相关的第一个查询与上面描述的Gardening Tools category相关?

本书没有详细解释这两个问题。

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

看起来作者使用的是除本机MongoDB javascript mongo客户端之外的驱动程序语言。 这也是有意义的,因为书中描述说作者维护了C和Ruby Mongo驱动程序。

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

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

  3. 与前一个问题类似。 product是您已检索过的文档。 该查询说“查找任何类别的文档,其ID为此产品类别ID数组。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM