相关疑难解决方法(0)

CouchDB视图:连接和子查询

我把它发布到CouchDB-Users邮件列表中,但我想我会把网络扩大一点.

[由于stackoverflow的新用户垃圾邮件规则导致链接被破坏:-(]

希望你们中的一个聪明的人可以提供帮助(或者至少有人可以明确地告诉我我要做的事情是不可能的,而且我将不得不考虑替代方案......我听说MySQL正在接受( - :) .

背景信息:我在这里设置了一个示例数据库:scoates-test.couchone.com/_utils/database.html?follow/scoates-test.couchone.com/follow

我有两种类型的文件.type = user和type = asset.

示例用户:scoates-test.couchone.com/_utils/document.html?follow/c988a29740241c7d20fc7974be05f67d

示例资产:scoates-test.couchone.com/_utils/document.html?follow/c988a29740241c7d20fc7974be061d62

用户可以关注其他用户(type =用户文档的"关注"字段).上面的示例用户(username = bob)是"跟随"2个用户:

"following": [
   "c988a29740241c7d20fc7974be05ec54", // username=aaron
   "c988a29740241c7d20fc7974be060bb4" // username=dale
]
Run Code Online (Sandbox Code Playgroud)

资产由特定用户拥有.以上示例资产归c988a29740241c7d20fc7974be061d62所有(用户名= bob).

希望这是有道理的.

我想请求属于bob跟随的用户的资产(aaron和dale),我不能把手指放在允许这个的视图代码上.我可以轻松地发出属于c988a29740241c7d20fc7974be05f67d的所有资产.

可以在两个请求中做到这一点.首先,我向CouchDB询问c988a29740241c7d20fc7974be05f67d,然后将以下内容作为"键"发布到返回属于这些键的资产的视图,但是您会注意到我的type = assets文档也有一个"when"字段,并且我希望能够通过发出[doc.owner,doc.when]作为密钥,然后使用startKey/endKey来订购.因此,我认为密钥的POST已经出来了.

可以加入应用程序端(查询以下密钥,为每个密钥发出一个请求,然后在应用程序端排序),但这会严重破坏分页(我需要为每个密钥请求pageSize的限制)以下),并且非常快速地失控(如果用户跟踪1000个用户,那么每页有10,000个记录).

这些解决方案都不适合我.我想 CouchDB中做到这一点.

我真的很难过.请帮忙.

小号

couchdb

8
推荐指数
1
解决办法
4489
查看次数

标签 统计

couchdb ×1