Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Mongodb 聚合异常:键';光标';在此文档或数组中找不到_Mongodb_Scala_Reactivemongo - Fatal编程技术网

Mongodb 聚合异常:键';光标';在此文档或数组中找不到

Mongodb 聚合异常:键';光标';在此文档或数组中找不到,mongodb,scala,reactivemongo,Mongodb,Scala,Reactivemongo,我有一个Play Framework Scala应用程序使用ReactiveMongo访问MongoDB。版本如下: Scala 2.12 Play 2.6.17 MongoDB 3.6.9 (on Heroku) ReactiveMongo (via play2-reactivemongo): 0.15.0-play26 我在RM中使用聚合框架支持,因此: collection.aggregate( Match(BSONDocument("categoryId" -> BS

我有一个Play Framework Scala应用程序使用ReactiveMongo访问MongoDB。版本如下:

Scala 2.12
Play 2.6.17
MongoDB 3.6.9 (on Heroku)
ReactiveMongo (via play2-reactivemongo): 0.15.0-play26
我在RM中使用聚合框架支持,因此:

collection.aggregate(
      Match(BSONDocument("categoryId" -> BSONDocument("$in" -> categories.map(_.id)))), 
      List(Sort(Ascending("position")),  Group(BSONString("$categoryId"))("cars" -> PushField("$ROOT")))
)
该代码适用于MongoDB 3.4.6,但问题是,在3.6.9上,该代码会产生以下异常:

reactivemongo.bson.exceptions.DocumentKeyNotFound: The key 'cursor' could not be found in this document or array
at reactivemongo.bson.BSONDocument.$anonfun$getTry$2(types.scala:1019)
at scala.Option.getOrElse(Option.scala:121)
at reactivemongo.bson.BSONDocument.getTry(types.scala:1019)
at reactivemongo.bson.BSONDocument.getAsTry(types.scala:1061)
at reactivemongo.api.commands.bson.BSONAggregationImplicits$AggregationResultReader$.readResult(aggregation.scala:98)
at reactivemongo.api.commands.bson.BSONAggregationImplicits$AggregationResultReader$.readResult(aggregation.scala:89)
at reactivemongo.api.commands.bson.DealingWithGenericCommandErrorsReader.read(bsoncommands.scala:52)
at reactivemongo.api.commands.bson.DealingWithGenericCommandErrorsReader.read$(bsoncommands.scala:41)
at reactivemongo.api.commands.bson.BSONAggregationImplicits$AggregationResultReader$.read(aggregation.scala:89)
at reactivemongo.api.commands.bson.BSONAggregationImplicits$AggregationResultReader$.read(aggregation.scala:89)

错误消息和堆栈跟踪没有提供任何帮助,因此是否有人遇到并解决了相同的错误?

您使用的是哪些数据?什么是“光标”?reactivemongo 0.15.0非常旧,我会尝试更新到最新版本,例如0.19.7。修复了很多bug并进行了改进。当然,升级总是一个选项,但这绝不是一件小事——特别是对于RM,它虽然强大,但却因在每个版本中引入重大突破性更改而臭名昭著。同样,相同的代码也适用于Mongo 3.6.12(以及前面提到的Mongo 3.4.6)。我真的很想在采取任何大胆的行动并希望能有所帮助之前先了解一下发生了什么。也许这是一个服务器错误。尝试在本地复制,然后逐步升级服务器。您看到的错误是因为RM希望服务器的应答中有
游标
元素,但没有。例如,在3.6.10中,在查询mongos实例时,修复了一个有关使用$match的聚合的错误。除了更新驱动程序以获得修复之外,没有其他方法。您使用的是哪些数据?什么是“光标”?reactivemongo 0.15.0非常旧,我会尝试更新到最新版本,例如0.19.7。修复了很多bug并进行了改进。当然,升级总是一个选项,但这绝不是一件小事——特别是对于RM,它虽然强大,但却因在每个版本中引入重大突破性更改而臭名昭著。同样,相同的代码也适用于Mongo 3.6.12(以及前面提到的Mongo 3.4.6)。我真的很想在采取任何大胆的行动并希望能有所帮助之前先了解一下发生了什么。也许这是一个服务器错误。尝试在本地复制,然后逐步升级服务器。您看到的错误是因为RM希望服务器的应答中有
游标
元素,但没有。例如,在3.6.10中,在查询mongos实例时,修复了一个关于使用$match进行聚合的错误。除了更新驱动程序以获得修复之外,没有其他方法。