javascript-关系数据的CouchDB MapReduce查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-关系数据的CouchDB MapReduce查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1510字,纯文字阅读大概需要3分钟。
内容图文
在开始之前,请不要告诉我使用SQL.在较大的上下文中,这是一个小问题,我不能也不想在这里使用关系数据库.我知道问题很容易用SQL解决.
共有三种类型的文档:
>玩家
>团队
>赞助商
球队属于一个赞助商,但有很多球员.一个玩家可以在多个团队中,一个赞助商可以具有多个团队.
玩家1 — N队N — 1赞助商
我将玩家文档ID放入数组的Teams文档中:
players: ["payer1","player2",...]
现在,我希望所有(特定的,只命名一次)特定球员的赞助商:
玩家1:赞助商1,赞助商2,赞助商3,…
有点像CouchDB Wiki中的n-n示例,但是由于团队玩家中有多个键,因此这实际上是行不通的.
任何想法如何编写MapReduce函数以获得此结果?
我得到的最接近的,但多次显示赞助者,组级别1:
function(doc) {
if(doc.type == "team")
emit(doc.players,doc.sponsor);
}
function(keys, values) {
return (values);
}
解决方法:
您与您的视图很接近,在此稍作修改:
"playerSponsers": {
"map": "function(doc) {
if(doc.type == "team" && doc.players) {
for (i in doc.players) {
emit([doc.players[i], doc.sponsor],1);
}
}
}",
"reduce": "_sum"
}
这是查询:
http://localhost:5984/test/_design/sports/_view/playerSponsors?group=true&group_level=2
您将得到如下结果:
{"rows":[
{"key":["Player1","Sponsor1"],"value":1},
{"key":["Player1","Sponsor2"],"value":1},
{"key":["Player1","Sponsor3"],"value":1},
{"key":["Player2","Sponsor1"],"value":1},
{"key":["Player2","Sponsor2"],"value":2},
{"key":["Player2","Sponsor3"],"value":1}
]}
如果您只想获得一名球员的赞助商,则可以这样查询
http://localhost:81/test/_design/sports/_view/playerSponsors?group=true&group_level=2&startkey=[%22Player1%22]&endkey=[%22Player1%22,{}]
内容总结
以上是互联网集市为您收集整理的javascript-关系数据的CouchDB MapReduce查询全部内容,希望文章能够帮你解决javascript-关系数据的CouchDB MapReduce查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。