0
안녕하세요 ReactiveMongo 및 Play를 사용하고 있는데 컬렉션에서 MongoDB 명령을 실행하고 싶습니다.ReactiveMongo 및 JSONCollection을 사용하여 Play 2의 MongoDb 컬렉션에서 원시 명령을 실행하십시오.
내 컬렉션처럼 선언 :
val commandDocument = Json.obj(
"geoNear" -> "thingsCollection",
"near" -> Json.obj(
"type" -> "Point",
"coordinates" -> Seq(lon, lat)),
"spherical" -> true,
"minDistance" -> 0,
"maxDistance" -> 5000
)
을 그리고 마지막으로, 여기에 컴파일되지 않는 코드는 다음과 같습니다 :
def thingsJSONCollection : Future[JSONCollection] =
database.map(connectedDb =>
connectedDb.collection[JSONCollection]("thingsCollection")
)
내가 실행하고 싶은 명령은 그렇게 선언
thingsJSONCollection.map{
collection => collection.runCommand(commandDocument)
}
명령을 실행하려고하면 기본적으로 긴 오류 메시지가 표시됩니다. runCommand
그 AYS는 인수로 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))
^
사람이 나에게, ReactiveMongo 사용하여 플레이에서 MongoDB의 컬렉션 원시 명령을 실행하는 방법 좀 찾을 수 있을까요?