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()
以下是我正在处理的文档:
{
"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()