java 代码中的 couchbase 排序问题

couchbase sort issue in java code

以下是我正在处理的文档:

{
   "id": "idgwSRWDUJjQH",
   "rev": "15-13d1d4545cd601560000000000000000",
   "expiration": 0,
   "flags": 0
}
    {
   "geminiType": "storegroup",
   "_class": "web.model.StoreGroup",
   "order": "10",
   "childId": [
   ],
   "name": "aaa",
   "parent": "root",
   "userGroupId": [
   ],
   "type": "Folder",
   "storeId": [
   ]
}

我正在尝试根据名称进行排序,如下所示

function (doc, meta) {
 if(doc.geminiType == "storegroup") {
  emit(doc.name, [ meta.id,doc.name, doc.parent, doc.type]);
}
}

我已经在 couchbase 控制台中创建了永久视图。我正在使用 couchbase 客户端从我的 jave 代码中获取文档,如下所示:

View storeGrpView = cc.getView(RRConsts.STORE_GROUP_VIEW_DESIGN_DOC, RRConsts.STORE_GROUP_VIEW);        

        Query getAllstoreGrpQuery = new Query();
        getAllstoreGrpQuery.setIncludeDocs(true);
        getAllstoreGrpQuery.setStale(Stale.FALSE);
        ViewResponse result = cc.query(storeGrpView, getAllstoreGrpQuery);
        logger.info("getAllstoreGrpQuery resultset: " + result.toString());

        for(ViewRow row : result) {
            logger.info("store group :"+row.getDocument().toString());
                }
        }

这里我得到的结果是文档的 meta.id 顺序,但我期望结果集是 doc.name 的顺序。请让我知道我哪里做错了。

我找到了上述问题的解决方案。实际上,如果我使用以下两个 get 方法而不是 row.getDocument() 来获取数据,我将按预期的顺序获取数据。

row.getkey() row.getvalue()