Nosql 使用CouchDB的视图中的通配符?

Nosql 使用CouchDB的视图中的通配符?,nosql,couchdb,mapreduce,Nosql,Couchdb,Mapreduce,是否可以在CouchDB的视图中使用通配符?例如,假设我有一个数据库,其中包含球队、球员年龄、球员平均水平和球员性别。然而,球员的年龄可能不得而知——他们可能来自多米尼加共和国或其他国家。所以我想使用一个带有地图功能的视图,它可以接受没有玩家年龄的情况。如果我想得到一个球队中平均得分最高的球员,而不考虑年龄或特定年龄,如果我想使用复合键,我该怎么做?例如,假设我的贴图发射函数类似于: emit([doc.team, doc.gender, doc.age], doc.average); 如果我

是否可以在CouchDB的视图中使用通配符?例如,假设我有一个数据库,其中包含球队、球员年龄、球员平均水平和球员性别。然而,球员的年龄可能不得而知——他们可能来自多米尼加共和国或其他国家。所以我想使用一个带有地图功能的视图,它可以接受没有玩家年龄的情况。如果我想得到一个球队中平均得分最高的球员,而不考虑年龄或特定年龄,如果我想使用复合键,我该怎么做?例如,假设我的贴图发射函数类似于:

emit([doc.team, doc.gender, doc.age], doc.average);
如果我想传递一把钥匙来缩小范围,但仍然要考虑没有输入年龄的球员,那么我该怎么做,而不是:

http://127.0.0.1:5984/savings/_design/players/_view/average?key=["Yankees","male",8]
执行一些包含通配符的操作,例如,获得平均值,而不考虑年龄:

http://127.0.0.1:5984/savings/_design/players/_view/average?key=["Yankees","male",*]
可以在CouchDB中编写一个视图来执行类似的操作吗?还是需要编写多个视图并分别处理它们

谢谢,

Ben

不可能使用通配符,但您可以指定
startkey
endkey

http://127.0.0.1:5984/savings/_design/players/_view/average?startkey=["Yankees","male",0]&endkey=["Yankees","male",999]

您可以指定
startkey
endkey
并使用“通配符”
{}
,一个JavaScript空对象:

http://127.0.0.1:5984/savings/_design/players/_view/average?startkey=["Yankees","male",0]&endkey=["Yankees","male",{}]

endkey=[“Yankees”,“male”,“{}]应该更有效,因为{}是在任何数字之后排序的。正如dedalo和Ordnugswidrig指出的,您可以使用空大括号作为startkey和endkey的通配符,所以当它说“通配符是不可能的”时,您的答案有点混乱。