java代码中的couchbase排序问题

时间:2015-04-06 06:47:03

标签: couchbase

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

{
   "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());
                }
        }

这里我按照doc的meta.id顺序得到结果,但我希望结果集按doc.name的顺序排列。请让我知道我做错了什么。

1 个答案:

答案 0 :(得分:0)

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

row.getkey() row.getvalue()