获取错误15999“;无效运算符'$sqrt&x27;在3.2中使用MongoDB聚合时
根据文档,$sqrt操作符是MongoDB 3.2中的新操作符。我刚刚将整个集群升级到3.2.1版(经云管理器确认),但我仍然不能使用$sqrt作为聚合步骤。我可能遗漏了一些非常明显的东西,所以在向MongoDB报告bug之前,我会使用第二种意见 步骤是:获取错误15999“;无效运算符'$sqrt&x27;在3.2中使用MongoDB聚合时,mongodb,aggregation-framework,Mongodb,Aggregation Framework,根据文档,$sqrt操作符是MongoDB 3.2中的新操作符。我刚刚将整个集群升级到3.2.1版(经云管理器确认),但我仍然不能使用$sqrt作为聚合步骤。我可能遗漏了一些非常明显的东西,所以在向MongoDB报告bug之前,我会使用第二种意见 步骤是: { "$project": { "word": "$indices.text", "mult": {"$sqrt": "$indicesSize"} } 更新:刚刚在我的mongos.log中找到了这个: 2016-
{
"$project": {
"word": "$indices.text",
"mult": {"$sqrt": "$indicesSize"}
}
更新:刚刚在我的mongos.log中找到了这个:
2016-05-08T18:00:37.616+0200检测到分片[平衡器]多版本群集,我的版本是3.0.11
因此,我猜某个节点仍在运行旧版本-可能是一个仲裁器…字段的数据类型是什么$indicatesize
,是否有可能在该字段中存储非正数?它们都应该是numberrint,但我尝试用2替换$indicatesize,并得到相同的错误。我猜mongos仍然认为集群中有运行2.0版本的节点。您是从客户端还是服务器运行此聚合管道?如果您尝试在mongo shell上执行它,并且如果从客户端运行,可能该应用程序仍然连接到服务器的一个足够旧的版本??通过Java驱动程序和mongo客户端尝试。我的本地mongo客户端是3.2.1,集群运行3.2.6。根据Cloud Manager,理论上所有节点都报告为3.2.6。也许我需要在配置服务器上做些什么来完成3.0到3.2的升级?