我正在实现一个文件存储服务,它获取一个文件并将其保存到具有特殊元数据的gridFS中。当然,我想确保一切都在集成中工作——文件确实存储在数据库中,然后从中检索。我使用PlayFramework2.1.3Scala和ReactiveMongo0.9。我的测试用例如下所示:"showemptyuploadedsizeoninit"in{running(FakeApplication()){Await.result(FileStorage.getFilesSize(profileId),duration)mustbeNone}}我尝试用running来包装所有情况,或者所有情况,甚至是Thr
下面又是我在previouspost中展示的案例类...但使用cmbaxter建议的修复:caseclassUser(id:Option[BSONObjectID],name:String,addresses:Option[List[BSONObjectID]])objectUser{implicitobjectUserWriterextendsBSONDocumentWriter[User]{defwrite(user:User)=BSONDocument("_id"->user.id.getOrElse(BSONObjectID.generate),"name"->user.nam
play框架中的Morphia和MongodDB模块都是MongoDBJava驱动程序的包装器。但是我注意到Morphia在查询的时候并没有直接给出一个JavaList。它给了我一个名为Query的复杂对象。在这个对象上,我必须调用方法asList(),这会导致它遍历Query中的每个元素并生成一个列表。我认为当我大多数时候需要Java列表时,这会对性能产生影响。我想知道为什么Morphia在从mongodb数据库中获取数据时不生成列表。 最佳答案 原因是它可以让您决定您想要数据的方式。正如在wiki中看到的那样您只能通过get()
Play至少有两个mongodb插件!框架,PlayMorphia和Mongo1.3.推荐的插件是什么,如果有其他的怎么办? 最佳答案 使用吗啡模块。它具有更多功能,使用另一个经过良好测试的库,并且状态更好。 关于java-Play推荐的mongodb插件是什么!框架?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8329160/
在我的Play+ReactiveMongo应用程序中,我得到Future[Option[Student]]结果并且我正在尝试匹配结果:defgetStudent(id:String)=Action{valfutureOfStudent:Future[Option[Student]]=StudentRepository.getStudentById(id)valtimeoutFuture=play.api.libs.concurrent.Promise.timeout(0,Duration(3000,MILLISECONDS))Async{Future.firstCompletedOf(
当使用ReactiveMongo从MongoDB查询文档时,我试图过滤掉password字段:valprojection=Json.obj("password"->0)deffind(selector:JsValue,projection:Option[JsValue])={valquery=collection.genericQueryBuilder.query(selector)projection.map(query.projection(_))query.cursor[JsValue].collect[Vector](perPage).transform(success=>su
我有一个MongoDB服务器,我在其中启用了身份验证并创建了具有DB特定权限的用户。此应用程序的用户定义如下所示,即geoAdmin具有相关数据库的读取、读写和dbOwner权限:MongoDBshellversion:3.0.0connectingto:192.168.2.89/test>usegeo_dbswitchedtodbgeo_db>db.getUser("geoAdmin"){"_id":"geo_db.geoAdmin","user":"geoAdmin","db":"geo_db","roles":[{"role":"read","db":"geo_db"},{"ro
我正在尝试使用以下方式在MongoDB中插入日期:collection.insert(Json.obj("user"->"abc","joined_date"->DateTime.now))在数据库中:{"_id":ObjectId("5865d99718969bca6a09450f"),"user":"abc","joined_date":NumberLong("1483069847066")}这里的问题是日期以Long毫秒格式存储在数据库中,但我想要它以ISO日期格式存储。我尝试在MongoShell中保留相同的数据db.example.insert({user:"abc",joi
我有一个mongo条目,其中一个字段是一个列表。如果条目不存在,我想添加一个新条目。如果它存在,我想将一个新元素添加到列表中。最后我想返回一个Ok给客户端,但只有在操作成功完成之后。不是严格的要求,但在我看来,这是对用户最有意义的要求。这就是我目前拥有的-它可以工作,但在更新时它会覆盖旧列表,而不是附加新元素。defmyMethod(value:String,value2:String)=Action{Async{valmyElement=Json.obj("key"->value2)valmyDBEntry=Json.obj("key"->value,"list"->List(myE
我正在尝试开始使用playframework中的salat插件。我已经在application.conf中配置了数据库并将所有依赖项添加到Build.scala并将salat添加到play.plugins文件。我实际上还没有向项目添加任何代码,我只是按照github页面上的说明进行操作,然后尝试运行该项目。我收到以下错误消息(Serverstarted,useCtrl+Dtostopandgobacktotheconsole...)[info]play-mongodb[default]connectedatheroku_app4620908@ds031907.mongolab.com: