草庐IT

mongodb - 使用 Morphia 测试 MongoDB 集群

我一直在副本集配置中试用MongoDB,以了解它如何扩展/执行/应对。我一直在使用Morphia(Mongo'sJavadrivers之上的POJO映射层)将10,000个简单的随机文档保存到单个集合中。我已经用@Entity(concern="REPLICAS_SAFE")注释注释了我的POJO(下面代码段中的MyData),希望发送到数据库的数据将安全地持久化。我的POJO由ObjectId字段(Mongo的主键类型)、一个随机长度的随机字符(最多20个字符)的String和一个组成>long使用Random.nextLong()生成。我的代码如下:for(inti=0;i我设置了

mongodb - 如何在 Java/GWT 中使用 Morphia

我正在尝试使用MongoDB和Morphia作为我的后端数据库,我已经实现了一个实用程序类来简化对数据库的访问。我实现了基本的添加用户功能但是我得到了`很多异常:java.lang.IndexOutOfBoundsException放置时出现异常Queryquery=datastore.createQuery(User.class).filter("name=",username);用于在提交前检查用户。删除后:我得到这两个异常:java.lang.RuntimeException:java.lang.NumberFormatException:如何解决这个问题?这是我为该项目准备的代

mongodb - Mongo Java 驱动程序和映射器性能

Java中的Mongo可以与多种工具一起使用:10genofficialdriver替代方案asyncJavadriver映射器—建立在驱动程序之上的库—Morphia,Jongo...(参见completelist)是否有一些基准比较映射器与驱动程序的性能以及相互比较? 最佳答案 不幸的是,没有我所知道的基准。司机主页是here(但我猜你可能知道)和JavaLanguageCenter包含与JavaforMongoDB相关的所有信息。据我所知,目前Java驱动程序正在进行大量工作,但没有基准测试。

mongodb - 在 Morphia 全文搜索中包含分数

我正在尝试在Morphia中使用MongoDB全文索引。我需要返回每个文档的分数并对结果进行排序。这是没有Morphia时我的查询的样子:db.getCollection('disease').find({$text:{$search:"brain"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}})这可以正常工作并返回按分数排序的命中。我也可以在没有Morphia的情况下直接使用MongoDBJava驱动程序来执行此操作。//searchwiththeJavadriverBasicDBObjecttextS

java - 找不到适合我类(class)的编解码器

我有一个名为Signal的简单类。类如下所示:publicclassSignal{privateStringid;privateDatetimestamp;publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicDategetTimestamp(){returntimestamp;}publicvoidsetTimestamp(Datetimestamp){this.timestamp=timestamp;}}我正在尝试在MongoDB(v3.4)中插入信号。我正在使用以下方法插入:public

java - 如何按内部数组大小对 MongoDB 查询结果进行排序?

我正在使用Morphia访问mongoDB。我需要按内部数组的长度获取对象列表。有没有人知道如何在不将所有集合都交给Java并在那里进行排序的情况下完成这项工作? 最佳答案 您应该创建具有嵌套数组大小的额外字段并使用$inc更新此字段。您也可以使用$where,但速度很慢。您可以像这样按嵌套数组长度搜索:db.coll.find({$where:"this.nestedArray.length>3"});但正如我所说,最好创建一个额外的字段。 关于java-如何按内部数组大小对Mongo

java - MongoDB/Morphia 将技术 ID 保存为 ObjectId,尽管它在 Java 中是一个字符串

我的MongoDB中有两种文档:客户端和代码。每个代码代表一个客户。客户端必须由管理员明确存储,因此我必须将它们分开存储,不能将它们放入代码文档中。code->client现在MongoDB/Morphia将客户端的技术ID保存为ObjectId,而代码引用具有String类型技术ID的客户端。我能够通过给定的客户端ID搜索代码,但在运行时我会收到一条错误消息,因为Morphia无法注入(inject)客户端。我认为这是因为不同的id类型。code{client.$id:String}client{_id:ObjectId}有什么办法解决这个问题吗?异常com.google.code.

java - 如何使用 Morphia 存储空字段

Morphia默认情况下不存储null/空字段。有没有办法启用它? 最佳答案 为了回答问题,您可以通过调用MappingOptions.setStoreNulls来存储空值并通过调用setStoreEmpties存储空值.您可以通过调用morphia.getMapper().getOptions()获取MappingOptions引用. 关于java-如何使用Morphia存储空字段,我们在StackOverflow上找到一个类似的问题: https://st

java - 无法使用 Morphia 从 Mongo 数据库中提取 - 没有可用的构造函数

所以我试图将sha265中的密码保存到mongo数据库中并使用ApacheShiro框架来授权用户登录,同时尝试从数据库中提取我正在运行的吗啡时间异常,这里是代码:用户类:publicclassUserimplementsSerializable{@IdprivateObjectIdid;privateStringname;privateStringpassword;privateSimpleByteSourcepasswordSalt;@EmbeddedprivateTenantIdtenantId;privateSetroles=newHashSet();@Overridepubl

java - Morphia 保存新实体而不是更新 _id

很抱歉这个愚蠢的问题。我正在使用Morphia1.00。有一些实体:@Entity("Vacancy")publicclassVacancy{@IdprivateObjectIdid;@Versionlongversion;privateStringtitle;和其他一些字段,setter和getter。试图保存相同的实例:Vacancyvacancy1=newVacancy();vacancy1.setTitle("Dumm");Vacancyvacancy2=newVacancy();vacancy2.setTitle("Dumm");vacancyDao.getDatastore