小编sco*_*tes的帖子

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视图:按时间删除重复*和*顺序

根据我之前的问题的一个很好的答案,我已经部分解决了我与CouchDB的问题.

这导致了一种新观点.

现在,我需要做的下一件事是按日期排序时从此视图中删除重复项.

例如,以下是我查询该视图的方式:

GET http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following?endkey=[%22c988a29740241c7d20fc7974be05ec54%22]&startkey=[%22c988a29740241c7d20fc7974be05ec54%22,{}]&descending=true&limit=3
Run Code Online (Sandbox Code Playgroud)

结果如下:

HTTP 200 http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following
http://scoates-test.couchone.com > $_.json.rows
[ { id: 'c988a29740241c7d20fc7974be067295'
  , key: 
     [ 'c988a29740241c7d20fc7974be05ec54'
     , '2010-11-26T17:00:00.000Z'
     , 'clementine'
     ]
  , value: 
     { _id: 'c988a29740241c7d20fc7974be062ee8'
     , owner: 'c988a29740241c7d20fc7974be05f67d'
     }
  }
, { id: 'c988a29740241c7d20fc7974be068278'
  , key: 
 [ 'c988a29740241c7d20fc7974be05ec54'
     , '2010-11-26T15:00:00.000Z'
     , 'durian'
     ]
  , value: 
     { _id: 'c988a29740241c7d20fc7974be065115'
     , owner: 'c988a29740241c7d20fc7974be060bb4'
     }
  }
, { id: 'c988a29740241c7d20fc7974be068026'
  , key: 
     [ 'c988a29740241c7d20fc7974be05ec54'
     , '2010-11-26T14:00:00.000Z'
     , 'clementine'
     ]
  , value: …
Run Code Online (Sandbox Code Playgroud)

couchdb mapreduce views

7
推荐指数
1
解决办法
4522
查看次数

为什么bash插入引号我没有要求?

有人可以向我解释一下吗?

$ set -x
$ export X="--vendor Bleep\ Bloop"; echo $X
+ export 'X=--vendor Bleep\ Bloop'
+ X='--vendor Bleep\ Bloop'
+ echo --vendor 'Bleep\' Bloop
--vendor Bleep\ Bloop
$
Run Code Online (Sandbox Code Playgroud)

具体来说,为什么echo行插入'我没有要求的字符,为什么它会使字符串看起来没有终止?

bash shell

6
推荐指数
1
解决办法
140
查看次数

为什么MongoDB没有使用正确的索引?

我有一个MongoDB查询,我正在尝试优化.我创建了一个与查询中的字段匹配的索引,但我似乎无法让MongoDB的查询规划器在没有显式的情况下使用索引hint(),即使nscannedmillis对于提示版本更好.

这是索引,查询(有和没有提示),以及详细解释:

http://paste.roguecoders.com/p/4face5649612e840da04c5fea0491c9b.txt

另外一点信息:这个索引在一个大型集合中,在一个副本集中,所以我使用离线方法构建了索引.它现在存在于所有节点中.

(最初发布在MongoDB-User上.)

mongodb

5
推荐指数
1
解决办法
323
查看次数

标签 统计

couchdb ×2

bash ×1

mapreduce ×1

mongodb ×1

shell ×1

views ×1