ReactiveMongo findOne 给出了模糊的隐式值
ReactiveMongo findOne gives ambiguous implicit values
我的相关导入是:
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
给出了不明确的隐式值:play.modules.reactivemongo.json.BSONDoubleFormat.type 类型的特征 BSONFormats 中的对象 BSONDoubleFormat 和 play.modules.reactivemongo.json.BSONStringFormat.type 类型的特征 BSONFormats 中的对象 BSONStringFormat 都匹配预期类型 play.api.libs.json.Reads[T] myCollection.find(Json.obj("email" -> 电子邮件)).one
据我所知,我需要以某种方式定义应该使用哪种格式对象。但我不明白如何做到这一点。另一个问题是我使用 JSON 对象而不是 BSON 在 Mongo 中存储数据,因此我不明白为什么它抱怨 BSONDoubleFormat 和 BSONStringFormat 对象。
如果您查看文档和示例,您会发现函数是 .one[T]
,而不是 .one
。
由于您没有指明结果类型T
,因此无法编译。
myCollection.find(Json.obj("email" -> email)).one[T]
我的相关导入是:
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
给出了不明确的隐式值:play.modules.reactivemongo.json.BSONDoubleFormat.type 类型的特征 BSONFormats 中的对象 BSONDoubleFormat 和 play.modules.reactivemongo.json.BSONStringFormat.type 类型的特征 BSONFormats 中的对象 BSONStringFormat 都匹配预期类型 play.api.libs.json.Reads[T] myCollection.find(Json.obj("email" -> 电子邮件)).one
据我所知,我需要以某种方式定义应该使用哪种格式对象。但我不明白如何做到这一点。另一个问题是我使用 JSON 对象而不是 BSON 在 Mongo 中存储数据,因此我不明白为什么它抱怨 BSONDoubleFormat 和 BSONStringFormat 对象。
如果您查看文档和示例,您会发现函数是 .one[T]
,而不是 .one
。
由于您没有指明结果类型T
,因此无法编译。
myCollection.find(Json.obj("email" -> email)).one[T]