gpt4 book ai didi

couchbase - 在沙发上按不同属性进行限制和排序

转载 作者:行者123 更新时间:2023-12-05 01:08:20 26 4
gpt4 key购买 nike

给定一个 couchbase 上的 JSON 文档,例如一个里程碑集合,类似于:

{
"milestoneDate" : /Date(1335191824495+0100)/,
"companyId" : 43,
"ownerUserId": 475,
"participants" : [
{
"userId": 2,
"docId" : "132546"
},
{
"userId": 67,
"docId" : "153"
}
]
}

如果我要选择公司的所有里程碑 43并希望最晚先订购它们。我对 couchbase 的看法与此类似:
function (doc, meta) {
if(doc.companyId && doc.milestoneDate)
{
//key made up of date particles + company id
var eventKey = dateToArray(new Date(parseInt(doc.milestoneDate.substr(6))));
eventKey.push(doc.companyId);

emit(eventKey, null);
}
}

我确实在休息 url 上得到了日期和公司 ID .. 然而,作为沙发基地的新手,我无法弄清楚如何限制 View 只返回公司的里程碑 43
返回键类似于:
"key":[2013,6,19,16,11,25,14]

其中最后一个元素( 14 )是公司 ID.. 这显然是错误的。

我试过的查询参数是:
  • &descending=true&startkey=[{},43]
  • &descending=true&startkey=[{},43]&endKey=[{},43]
  • 尝试将 companyId 添加到 value但不能按值限制返回结果。

  • 根据 couchbase 文档,我需要在开始时使用日期部分来对它们进行排序。我现在如何通过公司 ID 限制它们?

    谢谢。

    最佳答案

    将公司 id 放在数组的开头,因为您将受到公司 id 的限制,couchbase 按公司 id 排序,然后按日期数组排序,因此您将只会获得一个公司的里程碑文件

    我会修改 View 以发出

    emit([doc.copmanyId, eventKey], null);

    然后你可以查询 View
    &descending=true&startkey=[43,{}]

    这是以前对我有用的东西..

    我回去用 end key 试了一下这似乎有效 - 根据需要限制和订购:
    &descending=true&startkey=[43,{}]&endkey=[42,{}]

    或者
    &descending=true&startkey=[43,{}]&endkey=[43,{}]&inclusive_end=true

    要么使用结束键指定下一个递增/递减的值(基于降序标志),要么使用相同的 endkeystartkey并设置 inclusiveEnd为真

    这两个选项都应该可以正常工作。 (我只用 endkey=42 测试了一个,但它们都应该工作)

    关于couchbase - 在沙发上按不同属性进行限制和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17273553/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com