我们使用MongoDb作为我们应用程序的数据源,该应用程序是使用cqrs和事件源构建的。我们今天面临的问题是什么是实现事件映射(非规范化)以读取数据库的最佳方式。例如,我们有一个用户MongoDb集合,其中包含有关用户的所有信息。我们有这样的事件:[Serializable]publicclassPasswordChangedEvent:DomainEvent{privatestring_hashedPassword;privatestring_salt;publicPasswordChangedEvent(){}publicPasswordChangedEvent(stringhas
我下载了类型安全应用程序“modern-web-template”,它使用play+scala+reactivemongo实现了一个crud应用程序我正在尝试添加新功能。我希望能够通过这样调用带有两个参数的URLlocalhost:9000/users?dni&30000000首先我将这条路由添加到路由文件中GET/users@controllers.Users.findUsersParams(tipoDocumento:String?="",numeroDocumento:String?="")然后我将这个方法添加到ControllerdeffindUsersParams(tipoD
我在我的应用程序中使用Play1.2.5、MongoDB和Morphia模块1.2.9。为了创建到数据库的安全加密连接,我使用以下链接启用SSL安装了MongoDBhttp://docs.mongodb.org/manual/administration/ssl/http://www.mongodb.org/about/tutorial/build-mongodb-on-linux/现在我可以使用mongo--ssl连接到mongoshell,也可以使用https://mylocalhost.com:27017/验证MongoDB是否正在运行。但是在MongoDB中启用SSL后,我无法
SpringEvent学习观察者模式是一种行为设计模式,它定义了对象之间的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。在这个模式中,改变状态的对象被称为主题,依赖的对象被称为观察者。为什么要使用SpringEvent1、业务解耦:比如给注册成功的用户发送短信通知,正常情况下我们可能会在service中去写这个发送短信通知的代码,但是如果用户注册有多个场景,每个场景都去调一次发送短信通知的代码略显繁杂,而且注册业务和发送短信通知的业务耦合了;这时就可以使用SpringEvent进行处理,在注册成功后发布一个用户注册成功的事件,然后在监听器中去统一发送短信通知
我正在实现一个文件存储服务,它获取一个文件并将其保存到具有特殊元数据的gridFS中。当然,我想确保一切都在集成中工作——文件确实存储在数据库中,然后从中检索。我使用PlayFramework2.1.3Scala和ReactiveMongo0.9。我的测试用例如下所示:"showemptyuploadedsizeoninit"in{running(FakeApplication()){Await.result(FileStorage.getFilesSize(profileId),duration)mustbeNone}}我尝试用running来包装所有情况,或者所有情况,甚至是Thr
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(
我有一个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