Couchdb-query.keys,字典为空

Couchdb-query.keys,字典为空,couchdb,nosql,Couchdb,Nosql,我已经编写了一个映射函数 emit([doc.university,doc.degree,doc.studentName],1) 现在,我想查询精确的行(不是键范围),如下所示 query.keys = [[university1,degree1,{}],[university2,degree2,{}]] CouchDB-Keys可以这样做吗?我正在收集属于特定学位和大学的所有学生(根据他们的名字排序) p.S我是一名使用Couchbase lite的iOS开发人员,不是CouchDB方面的

我已经编写了一个映射函数

emit([doc.university,doc.degree,doc.studentName],1)
现在,我想查询精确的行(不是键范围),如下所示

query.keys = [[university1,degree1,{}],[university2,degree2,{}]]
CouchDB-Keys可以这样做吗?我正在收集属于特定学位和大学的所有学生(根据他们的名字排序)


p.S我是一名使用Couchbase lite的iOS开发人员,不是CouchDB方面的专家。

不,这是不可能的,因为CouchDB中没有通配符,但是通过创建与当前视图相同的新视图,您可以轻松获得相同的结果,但会发出:

emit([doc.university,doc.degree],doc.studentName)
并使用以下查询:

query.keys = [[university1,degree1],[university2,degree2]]

但是,emit不会根据studentName对行进行排序:(不,很遗憾不是。但是您可以通过在应用程序中对结果进行排序,或者通过对视图执行两个请求并将它们附加到应用程序中来解决这一问题:
?startkey=[university1,degree1]&endkey=[university1,degree1,“\ufff0”]
?startkey=[university2,degree2]&endkey=[university2,degree2,“\ufff0”]
我必须对结果进行分页。因此,当应用限制时,我无法在内存中排序,也无法发出两个请求。然后,您可能必须在列表函数中执行此操作,这将非常缓慢,因为它不是预先计算的,但您可以向它发送参数。