草庐IT

java - 带有对象推送的 Morphia 聚合阶段组

我使用的是最新版本的吗啡(1.3.2),我正在尝试在Java中复制以下成功的mongodb聚合阶段:{_id:null,pv:{$push:{t:'$_id',c:'$c'}}}阶段的示例输入是:{"_id":NumberLong(1487808017),"c":NumberInt(1)}{"_id":NumberLong(1487808210),"c":NumberInt(1)}{"_id":NumberLong(1487808914),"c":NumberInt(1)}预期的输出是:{"_id":null,"pv":[{"t":NumberLong(1487808017),"c":

java - MongoDB 和 Morphia - 传统 id(长)而不是 ObjectId

背景:我的REST服务项目是使用Hibernate启动的。我在域类中使用id(Long)作为resturl中标识符的一部分,例如:http://abc.com/customer-50,其中50是Longid。Hibernate注解类如下:publicclassCustomer{@Id@GeneratedValueprivateLongid;}现在我需要将我们的设计迁移到Mongodb。自然的选择是使用EntityFrameworkMorphia。问题:在Morphia中,id字段为ObjectId@IdprivateObjectIdid;这会导致问题,因为:1、不是自增,即http:/

java - 引用的延迟加载

我有一个带有成员的java类:@EntitypublicclassTypeA{...@Reference(lazy=true)privateTypeBanObj;...}现在,当我执行datastore.find(TypeA.class).asList().get(0)时,引用也会被加载并且我收到消息“警告:延迟加载不可能,因为缺少依赖项。”登录到控制台。我缺少哪些依赖项以及如何包含它们? 最佳答案 您需要将此添加到您的pom.xml(如果您使用的是maven):cglibcglib-nodep[2.1_3,3.0)jartruec

mongodb - 如何使用 mongodb 在 java 应用程序的日志文件中记录所有查询?

我有一个使用morphia的Java应用程序与mongodb一起工作。我想将所有发送到mongodb的查询记录在一个文件中,我可以对其进行分析以提高性能。但我找不到记录它们的方法。我知道mongodb可以在system.profile集合中记录查询,但我仍然想要一个日志文件。怎么做? 最佳答案 您使用SLF4J还是Logback/Log4J?添加Morphias的SLF4JExtension到您的CLASSPATH。然后只需启用com.google.code.morphia记录器并在任何你想要的地方记录它。

java - Morphia 在 Spring 通过 log4j 登录

我想使用log4j通过Sfl4j记录Morphia。来自Morphia的文档:Addthisatthestartofyourapplication.Itisdoneonce,statically.MorphiaLoggerFactory.registerLogger(SLF4JLoggerImplFactory.class);我无法为上述语句创建必要的bean来完成这项工作。 最佳答案 尽管文档另有声明,该类实际上称为SLF4JLogrImplFactory(Logr,而不是Logger):importcom.google.code

java - Mongo 连接泄漏与吗啡

我有一个带有staticMongo=newMongo()和Morphiamorphia=newMorphia()对象的Servlet。每次调用GET时,我都会执行以下操作:doGet(...){...datastore=morphia.createDatastore(mongo,dbName);...}我没有关闭datastore,因为没有关闭方法。每次我调用servlet时,mongo中使用的连接数都会增长:{"current":113,"available":706,"totalCreated":NumberLong(122)}>db.serverStatus().connecti

java - 在 Morphia 中,我如何更新 ArrayList 中的一个嵌入对象

对于将Mongodb与Morphia结合使用确实是个新手,并查看了许多关于如何执行此操作的高级答案。如果可能的话,我想做的很简单,我有这个@Embedded对象fileObjects包含Files对象。我无法更新Files中的字段。我只想更新一个字段f.exStringfileHash。@EntitypublicclassBatchData{@IdprivateObjectIdid;@EmbeddedpublicArrayListfileObjects=newArrayList();}更新..在MorphiaUpdating阅读wiki不要“真的”说仅当数组包含Integer时如何执行

java - Morphia 和 MongoDB - 模拟设置之类的东西

我现在正在评估MongoDB和Morphia。我将如何为“设置”之类的东西建模,其中只有一个“记录”(我不确定要使用正确的Mongo术语)。我必须重写实体类中的保存方法吗?如何执行此操作以及如何使用它的示例非常棒。比如我想存储主页配置:homepagesettingsshowfriendslist:falsemarketingtext:"You'llloveithere"mainimage:main.jpg 最佳答案 如果您基本上只想为您的应用程序设置一个副本(如单例),那么我建议如下:@EntityclassSettings{@I

mongodb - 检索 MongoDB/Morphia 中的数组数组?

我想在MongodDB中存储以下格式的文档:{"_id":ObjectId("563f904cd2a56e3934484c52"),"data":[["Year","Profit"],["2015",2]]}我已经创建了一个POJO来适应这个结构。importorg.bson.types.ObjectId;importorg.mongodb.morphia.annotations.Entity;importorg.mongodb.morphia.annotations.Id;importjava.util.List;@Entity(noClassnameStored=true)publ

java - 使用 Morphia 在 MongoDB 中批量更新插入。可能吗?

我有一个由POJO实现的实体,我们称它为TestEntity,它保存在Mongo的集合中。我通过迭代CSV文件并在满足某些条件时插入或更新现有记录来生成该实体的实例。您可以在下面找到我的一些代码示例//FileisparsedintoanentityMongoClientclient=newMongoClient("127.0.0.1",27017);Mapperw2sMap=newMapper();w2sMap.addMappedClass(TestEntity.class);morphia=newMorphia();Datastoredatastore=morphia.create