Couchdb 从数据库查询中获取字母顺序

Couchdb 从数据库查询中获取字母顺序,couchdb,pouchdb,Couchdb,Pouchdb,这就是我的代码当前的样子: var physicianList = []; function map(doc){ if(doc.PhysicianKey && doc.PhysicianName){ console.log(doc.PhysicianName); emit(doc.PhysicianKey, doc.PhysicianName); } } dbPhysicianList.query({map: map}, fun

这就是我的代码当前的样子:

var physicianList = [];

function map(doc){
    if(doc.PhysicianKey && doc.PhysicianName){
        console.log(doc.PhysicianName);
        emit(doc.PhysicianKey, doc.PhysicianName);
    }
}

dbPhysicianList.query({map: map}, function(error, response){ 
    if(!error){
        angular.forEach(response.rows, function(physician){
            physicianList.push(physician);
        })
        deferred.resolve(physicianList);
    }else{
        console.log(error);
        deferred.reject();
    }}, {include_docs: true});


    return deferred.promise;
}
如您所见,在我的map函数中,我正在注销
doc.PhysicianName
,当我这样做时,他们正在按字母顺序注销。然而,我认为他们是按照ID顺序,以非字母顺序被推到
physicianList
数组中的。我希望最终输出按照physicianList数组的字母顺序排列


不管怎样,我使用的是PockDB,但我相信查询应该像CouchDB一样工作。

我没有意识到您的
emit()
的变量顺序是结果集的顺序(我是一个主要的新手)

我最终做了这样的事:

function map(doc){
    emit({physicianName: doc.PhysicianName, physicianKey: doc.PhysicianKey} );
}
它的工作原理完全符合要求(按
doc.physicianName
的字母顺序排列)。

您也可以执行
emit([doc.physicianName,doc.PhysicianKey])
,我相信它的工作原理是一样的,在磁盘上使用稍微小一点的索引。