查询CosmosDB时处理此请求时发生未知服务器错误



我尝试了下面的查询,但由于某种原因,我得到了Unknown server error occurred when processing this request。我对mongodb有点陌生,但在阅读mongodb shell和CosmosDB的文档时,列出的所有运算符似乎都得到了支持,而且这在语法上看起来是正确的。

db.getCollection('transactions').aggregate(
[
{
$match:{
bdr_date: 20181031, 
make: { $exists: false }, 
shard_key: '1249_2018-10', 
time: { $gt: 2344 }
}
},
{
$group: { 
total_sales: { 
$sum: { 
$multiply: [
"$sales",
"$units"
]
}
}
}
} 
]
)

My CosmosDB使用MongoAPI,并包含一个名为transactions的集合,其中包含有许多密钥的文档,但以下是重要的密钥:

{
"bdr_date" : INT(32),
"time" : INT(32),
"sales" : Double,
"units" : INT(32),
"shard_key" : String
}

在一些文档中,还有一个名为{ "make": INT(32) }的密钥,我们有一个脚本来填补数据漏洞。我只想要有真实数据的文档,所以我用"make"键过滤掉了文档。bdr_dateyyyymmdd格式,而timeHHMM格式。

除了未知的服务器错误异常,错误代码并没有说明太多其他内容,所以我很困惑自己到底做错了什么。有什么简单的东西让我错过了吗?

如果你需要更多的信息,我会尽我所能。我很感激你的帮助!

发送电子邮件至AskCosmosDB@microsoft.com,显然有一些错误将在未来修复,目前使Cosmos返回错误的错误消息。

就我而言,它最终变得很简单。我只是忘了把_id键输入$group运算符。就我的情况而言,制作_id: null解决了这个问题。

db.getCollection('transactions').aggregate(
[
{
$match:{
bdr_date: 20181031, 
make: { $exists: false }, 
shard_key: '1249_2018-10', 
time: { $gt: 2344 }
}
},
{
$group: { 
_id: null,
total_sales: { 
$sum: { 
$multiply: [
"$sales",
"$units"
]
}
}
}
} 
]
)

最新更新