【问题标题】:Unknown server error occurred when processing this request when querying CosmosDB查询 CosmosDB 时处理此请求时发生未知服务器错误
【发布时间】:2018-11-05 23:04:59
【问题描述】:

我尝试了下面的查询,但由于某种原因,我得到了 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"
                        ]
                    }
                }
            }
        } 
    ]
)

我的 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 DB 帐户名称、发生错误的任何时间范围以及(甚至更好)一个简单的重现。对于 500 错误,通常需要对后端进行调查。
  • 谢谢。很快就得到了回复!

标签: mongodb-query azure-cosmosdb azure-cosmosdb-mongoapi


【解决方案1】:

在向 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"
                        ]
                    }
                }
            }
        } 
    ]
)

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 2011-12-14
    • 2010-09-22
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 2022-11-24
    相关资源
    最近更新 更多