![]() |
1
2
在couchdb中,您将编写一个map/reduce,它用复杂的键输出所有的汽车和司机,然后使用键范围来选择两者。例如,假设您的文档看起来像这两个…
你可以使用 duck typing 不是指定doctype,但我更喜欢这个方法。 您的地图功能:
我们的复杂钥匙是一个数组,第一个项目始终是司机的ID。数组中的第二个项目防止钥匙碰撞,并允许我们直接参考汽车或司机(稍后将详细介绍)。 我们现在可以使用键范围查询参数来获取这两个文档。
这基本上是说“给我任何一个数组,其中第一项是驱动程序ID,第二项是任何内容。这是因为对象-中的第二项
这也可以很好地扩展,因为我们可以向map函数中添加更多信息,而不必在客户机中更改查询。假设我们添加了一个赞助商doctype:我们只添加了另一个
当然,您也可以指定单独的文档,而不是全部提取它们。
干杯。 |
![]() |
2
1
在文档数据库中,可以将相关对象嵌入到拥有这些对象的文档中,例如,驱动程序文档还包含属于驱动程序的所有汽车。这就是文档数据库的强大功能;它们允许您轻松存储非规范化的数据。
此格式仅适用于一对多关系。如果驾驶员和汽车之间的关系是多对多的,则必须创建查找文档:
重要的是要注意,大多数文档数据库无法 执行 以SQL数据库的方式处理文档之间的关系。您的应用程序负责实施和维护这些关系。 |
![]() |
Jinmin · 如何防止匿名用户阅读couchdb? 7 年前 |
![]() |
Trevor · 查找pouchdb错误的方向 7 年前 |
![]() |
jkndrkn · 如何在CouchDB 2.0日志中查看HTTP头? 7 年前 |
![]() |
Masiar · CouchDB中的部分搜索/查找 7 年前 |
![]() |
user3740179 · 数据库的随机名称 7 年前 |
![]() |
Lokesh Jain · 从CouchDB中的数组中删除值 7 年前 |
![]() |
David J. · 使用多个斜杠将文档保存到CouchDB URL 7 年前 |