Привет Я использую ReactiveMongo и Play, и я хотел бы иметь возможность запускать команду MongoDB в коллекции.Выполнение необработанных команд в коллекции MongoDb из Play 2 с использованием ReactiveMongo и JSONCollection
Моя коллекция объявляется так:
def thingsJSONCollection : Future[JSONCollection] =
database.map(connectedDb =>
connectedDb.collection[JSONCollection]("thingsCollection")
)
Команда, которую я хотел бы выполнить объявляется так:
val commandDocument = Json.obj(
"geoNear" -> "thingsCollection",
"near" -> Json.obj(
"type" -> "Point",
"coordinates" -> Seq(lon, lat)),
"spherical" -> true,
"minDistance" -> 0,
"maxDistance" -> 5000
)
И, наконец, вот код, который не компилируется:
thingsJSONCollection.map{
collection => collection.runCommand(commandDocument)
}
Когда я пытаюсь выполнить команду, я получаю длинное сообщение об ошибке, которое в основном с AYS что runCommand
не принимает JsObject
в качестве аргумента:
Error:(618, 57) overloaded method value runCommand with alternatives:
[C <: reactivemongo.api.commands.CollectionCommand](command: C)(implicit writer: collection.pack.Writer[reactivemongo.api.commands.ResolvedCollectionCommand[C]])reactivemongo.api.commands.CursorFetcher[collection.pack.type,reactivemongo.api.Cursor] <and>
[R, C <: reactivemongo.api.commands.CollectionCommand with reactivemongo.api.commands.CommandWithResult[R]](command: C with reactivemongo.api.commands.CommandWithResult[R])(implicit writer: collection.pack.Writer[reactivemongo.api.commands.ResolvedCollectionCommand[C]], implicit reader: collection.pack.Reader[R], implicit ec: scala.concurrent.ExecutionContext)scala.concurrent.Future[R]
cannot be applied to (play.api.libs.json.JsObject)
thingsJSONCollection.map(collection => collection.runCommand(commandDocument))
^
Может кто-то помочь мне найти способ выполнить исходные команды в коллекции MongoDB из игры с помощью ReactiveMongo, пожалуйста?