按couchbase和scala中的文档值排序

时间:2014-03-27 08:50:53

标签: scala nosql couchbase

我正在使用couchbase,我有一个文档(产品),如下所示:

{
  "id": "5fe281c3-81b6-4eb5-96a1-331ff3b37c2c",
  "defaultName": "default name",
  "defaultDescription": "default description",
  "references": {
    "configuratorId": "1",
    "seekId": "1",
    "hsId": "1",
    "fpId": "1"
  },
  "tenantProducts": {
    "2": {
      "adminRank": 1,
      "systemRank": 15,
      "categories": [
        "3"
      ]
    }
  },
  "docType": "product"
}

我希望得到属于某个类别的所有产品(这个json是产品),所以我创建了以下视图:

function (doc, meta) {
  if(doc.docType == "product")
  {
  for (var tenant in doc.tenantProducts) {
    var categories = doc.tenantProducts[tenant].categories
    //  emit(categories, doc);

    for(i=0;i<categories.length;i++)
    {
         emit([tenant, categories[i]], doc);
    }   
   }
  }
}

所以我可以用以下键来运行视图:

[["tenantId", "Category1"]] //Can also have: [["tenant1", "Category1"],["tenant1", "Category2"] ]

我的问题是我收到了该文档,但我希望按照其管理级别和系统级别对文档进行排序,这些是“值”中存在的2个字段。

我知道唯一的解决方案是将这些字段添加到我的密钥中,确定我的密钥是从现在开始的:

 [["tenantId", "Category1", "systemRank", "adminRank"]]

在我拿到文件之后,我需要按键的第3和第4个参数排序?

我只是想确保我明白这一点。

由于

0 个答案:

没有答案