【问题标题】:Unexpected error with aggregate query to Azure Cosmos DB via MongoAPI通过 MongoAPI 对 Azure Cosmos DB 进行聚合查询时出现意外错误
【发布时间】:2018-03-09 08:15:14
【问题描述】:

我注意到我的数据库上的聚合查询失败:

{ 
  "aggregate" : "visitors", 
  "pipeline" : [
     { "$match" : { "project" : "E2E120AF-AC50-4969-9DA1-CFA1E31D7E17", "data.lastVisit" : { "$gt" : ISODate("2018-02-07T17:00:00Z") } } },
     { "$group" : { "_id" : { "$hour" : "$data.lastVisit" }, "count" : { "$sum" : 1 } } }
   ]
}

我从MongoChef.Net client 应用程序都尝试了这个,结果我得到了unexpected error

{{ "_t" : "OKMongoResponse", "ok" : 0, "code" : 1, "errmsg" : "unexpected error occured while processing the request", "$err" : "unexpected error occured while processing the request" }} 

如果我使用其他日期表达式运算符,例如 $dayOfYear,它也会失败。如果我在没有任何日期表达式的情况下按data.lastVisit 进行分组,它就可以正常工作。当然,同样的查询在真正的 MongoDB 上也能顺利运行。

visitors 集合中的文档结构如下:

{ 
    "project" : "E2E120AF-AC50-4969-9DA1-CFA1E31D7E17", 
    "data" : {
        "defaultName" : true, 
        "name" : "...", 
        "geo" : {
            ...
        }, 
        "firstVisit" : ISODate("2018-02-21T09:10:06.464+0000"), 
        "ip" : "....", 
        "lastVisit" : ISODate("2018-02-21T09:10:08.582+0000")
    }, 
    "_id" : ObjectId("5a8d376ef72db1002b9c591a"), 
    "sockets" : [
    ], 
    "isBlacklisted" : false, 
    "online" : true
}

我认为这是 Cosmos DB 实现聚合管道的一个问题,因此任何解决方法和有关如何提交 Cosmos DB 问题的信息都会有所帮助

【问题讨论】:

    标签: azure aggregation-framework azure-cosmosdb


    【解决方案1】:

    好的,我已经设法找到一种解决方法,即只需将字段添加到分组_id

    { "$group" : { "_id" : { time: { "$hour" : "$data.lastVisit" } }, "count" : { "$sum" : 1 } } }
    

    但错误仍然存​​在,这绝对是一个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 2023-03-05
      相关资源
      最近更新 更多