2015-12-30 2 views
-1

Моего соответствующему импорта:ReactiveMongo findOne дает неоднозначные неявные значения

import play.api.libs.concurrent.Execution.Implicits._ 
import play.api.libs.json.Jsonimport play.modules.reactivemongo.json._ 
import play.modules.reactivemongo.ReactiveMongoApi 
import play.modules.reactivemongo.json.collection.JSONCollection 
import reactivemongo.api.commands.WriteResult 
import reactivemongo.extensions.json.dao.JsonDao 
import reactivemongo.extensions.json.dsl.JsonDsl._ 

Код, который вызывает проблемы являются

myCollection.find(Json.obj("email" -> email)).one 

дает неоднозначные неявные значения: как объект BSONDoubleFormat в BSONFormats признака из play.modules типа .reactivemongo.json.BSONDoubleFormat.type и объект BSONStringFormat в черте BSONFormats типа play.modules.reactivemongo.json.BSONStringFormat.type соответствует ожидаемому типу play.api.libs.json.Reads [T] myCollection.find (Json.obj («электронная почта» -> электронная почта)). один

Как я понимаю, мне нужно каким-то образом определить, какой формат должен использоваться. Но я не понимаю, как это можно сделать. Другая проблема заключается в том, что я использую объекты JSON, а не BSON для хранения данных в Mongo, поэтому я не понимаю, почему он жалуется на BSONDoubleFormat & Объекты BSONStringFormat.

ответ

0

Если вы посмотрите на документацию и примеры, вы увидите, что функция .one[T], а не .one.

Как вы не укажете тип результата T, он не может скомпилировать.

myCollection.find(Json.obj("email" -> email)).one[T] 

 Смежные вопросы

  • Нет связанных вопросов^_^