【发布时间】: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