Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取错误15999“;无效运算符'$sqrt&x27;在3.2中使用MongoDB聚合时_Mongodb_Aggregation Framework - Fatal编程技术网

获取错误15999“;无效运算符'$sqrt&x27;在3.2中使用MongoDB聚合时

获取错误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-

根据文档,$sqrt操作符是MongoDB 3.2中的新操作符。我刚刚将整个集群升级到3.2.1版(经云管理器确认),但我仍然不能使用$sqrt作为聚合步骤。我可能遗漏了一些非常明显的东西,所以在向MongoDB报告bug之前,我会使用第二种意见

步骤是:

{
  "$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的升级?