首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >宇宙documentDB中是否有搜索直到规则的查询?

宇宙documentDB中是否有搜索直到规则的查询?
EN

Stack Overflow用户
提问于 2018-04-10 09:12:41
回答 1查看 72关注 0票数 1

因此,我试图从cosmos文档数据库中查询一些数据,如下所示

这是我的数据:

代码语言:javascript
运行
复制
{

"id": "**********",

"triggers": [
    {
        "type": "enter_an_area",
        "trigger_identity": "***********",

        },

    },
    {
        "type": "enter_an_area",
        "trigger_identity": "********",

        },

    },
    {
        "type": "exit_an_area",
        "trigger_identity": "*******",


    },

这是我的集合中的一个文档,其中我为每个具有唯一ID的用户提供了一个文档,现在我要做的是计算使用特定触发器的用户数量,用户可能多次使用相同的触发器,正如您在示例"enter_an_area“中看到的那样,它有多个肠类,但我仍然希望将其计数为一个肠类。

我使用这个查询获取特定触发器的计数:

在u.triggers中从u连接t中选择值计数(1),其中包含(t.type,"enter_an_area")

但是对于上面的例子,它将返回:2,其中我希望它返回1

在documentdb中是否有执行此操作的查询?如果没有这样的查询,是否有一种方法可以不重复地返回结果?因为作为一种解决方案,我认为我可以返回使用这个特定触发器的ID,但是当一个用户对一个触发器有多个entery时,我会得到重复的ID。

EN

Stack Overflow用户

回答已采纳

发布于 2018-04-10 09:36:02

您的问题似乎是关于像distinct这样的函数,查询的结果加入了一个数组。我建议您使用存储过程作为解决方案的解决方案。

请参阅我的样本存储过程:

代码语言:javascript
运行
复制
function sample() {
    var collection = getContext().getCollection();
    var isAccepted = collection.queryDocuments(
        collection.getSelfLink(),
        'SELECT u.id FROM u JOIN t in u.triggers WHERE CONTAINS(t.type, "enter_an_area")',
        function (err, feed, options) {
            if (err) throw err;
            if (!feed || !feed.length) getContext().getResponse().setBody('no docs found');
            else {
                var returnResult = [];
                var temp =''
                for(var i = 0;i<feed.length;i++){
                    var valueStr = feed[i].id;
                    if(valueStr != temp){
                        temp = valueStr;
                        returnResult.push(feed[i]) 
                    } 
                }
                getContext().getResponse().setBody(returnResult.length);
            }
        });

    if (!isAccepted) throw new Error('The query was not accepted by the server.');
}

希望它能帮到你。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49749748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档