问题标签 [morphia]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7029 浏览

java - 基于深度嵌套对象单字段的morphia查询

我想检索一个对象,基于一个对象的 id(或其他单个字段),该对象与我要检索的对象嵌套 2 个级别。一个例子来证明:

我想查找特定用户评论过的所有博客文章。

评论和用户由其父对象@Referenced。

阅读这篇文章后 http://groups.google.com/group/morphia/browse_thread/thread/57090ef1bd2f3e74?pli=1

我了解如何找到带有 ignoreField1/2 具有特定价值的评论的博客,但我想进一步导航。

我尝试了以下方法,但是因为比较了所有评论字段,所以没有匹配

0 投票
1 回答
603 浏览

java - 重新初始化 play morphia 后 findAll 失败

我有以下类,它在戏剧中使用 morphia 持久化到 mongodb 中!应用。该类驻留在一个模块中,该模块是另一个游戏的依赖项!应用。

它的配置是从文件中读取的,并在初始加载时持久保存到数据库中(如果它还没有在数据库中),然后后续请求使用数据库版本。

初始加载和后续查询访问正常,我可以在 mongo 中看到该页面:

但是,如果我重新开始玩!或进行代码更改导致 Morphia 被重新初始化(MorphiaPlugin-1.2.4> initialized出现在日志中)我得到以下堆栈跟踪:

如果我使用命令行从 mongodb 中删除 Collection,我可以再次从我的游戏中成功加载和查询 Page obejct!Web应用程序

正如我所提到的,这个类在一个模块中。此问题仅发生在该模块所依赖的一个应用程序中。另一个演示应用程序工作正常。

有什么建议么?

0 投票
1 回答
163 浏览

mongodb - Playframework morphia 模块与多个 MongoDB 分片或副本通信

现在,我从 Play! 与一个 MongoDB 进行 morphia 对话的配置设置。如果我有多个 MongoDB 实例(可能是分片或副本),我如何从 Play 访问它们!

0 投票
0 回答
322 浏览

mongodb - 使用 Morphia/MongoDB 使用 ObjectId 进行注释

我正在尝试使用此字段为 Morphia 注释 java 对象:

但是我的代码在代码中出现了这个错误:

虽然应用程序有 Morphia 和 MongoDB 罐子。

任何想法为什么会出现这个问题?

0 投票
1 回答
2799 浏览

mongodb - Morphia/MongoDB:从@Embedded 对象访问“嵌入”对象

我有一个类似于这个的 Morphia 模式:

(上面的代码只是为了说明)

我正在尝试获取特定的 BlogComment 以便使用新内容对其进行更新。我有相应的 BlogEntry 对象可用,并且我有 authorId,假设出于这个问题的目的,这两个一起足以唯一标识正确的 BlogComment。

我的问题是,BlogComment 没有明确包含对其“父”BlogEntry 对象的引用,那么如何编写 morphia 查询来检索此 BlogComment?就像是:

0 投票
1 回答
470 浏览

mongodb - 如何将 log4mongo 文档映射到 java 对象

基本上我的 log4mongo 正在记录用户活动,我想选择一个用户并查看他的日志条目,

此代码工作正常

但在这里我收到错误“尝试映射到未映射的类:

package该类的名称应该是什么,log或者可能无关紧要。我意识到可能我的 POJO 设置不正确,
但我不知道出了什么问题。

log4mongo 文档如下所示。

这是我试图映射到的 POJO

0 投票
1 回答
178 浏览

mongodb - 在 MongoDB 中首先显示具有某些属性的文档的最快方法

我有大量文档的集合,我需要使用各种不同的查询对其进行自定义搜索。每个 Document 都有布尔属性。我们称之为“isInTop”。我需要在所有查询中首先显示具有此属性的文档。是的。我可以轻松地在这个领域进行排序,例如:

并使用字段“isInTop”作为其中的最后一个字段创建适当的索引。但这将缓慢工作,因为mongo 中的索引最适合使用 unique fields。那么有没有解决方案在每个查询的顶部显示带有“isInTop”字段的文档?

我在这里看到两个解决方案。第一:设置需要在“未来”的_id之上的文档。如您所知,ObjectId 包含时间戳。所以我可以使用未来的时间戳创建 ObjectId 并使用自然顺序

第二:为需要在顶部的文件创建单独的集合。并首先在其中进行查询。

这个问题还有其他解决方案吗?哪个会更胖?

更新 我已经通过对代表排名的自定义字段进行排序来完成这个问题。

0 投票
1 回答
688 浏览

mongodb - 如何使用 YAML 将嵌入数据加载到 play/morphia/mongodb 中?

我正在使用 play 开发一个网络应用程序!框架和morphia/mongodb。我正在尝试使用 play 提供的 YAML 功能加载一些初始数据。

我无法弄清楚导入嵌入对象的正确语法。

这是我使用 morphia mongodb 映射器的数据模型:

使用以下 yaml 代码,我可以导入 MongoEvent,但不能导入嵌入的 MongoEventListItem:

在 mongodb 中,我得到以下数据:

关于正确的 YAML 语法的任何想法?

谢谢

0 投票
1 回答
1185 浏览

javascript - 玩!框架morphia模块组聚合按日期桶

我正在使用游戏!框架 morphia-mongodb 模块,我看到它有很好的内置插件来进行组聚合。不幸的是,所有示例仅显示按固定字段进行分组/聚合,而我需要按计算字段进行聚合:按天分组的时间戳。我想知道是否有人知道正确的方法?

我知道我可以求助于原生地图/减少(它本身需要一点挖掘才能弄清楚,所以我在这里发布以供参考,使用电影和放映时间):

但是,如果已经有一种优雅的内置方法可以使用 morphia 模块进行这种聚合,我想改用它。我的一个想法是在我的 java 类中创建一个虚拟字段(例如“getDay()”),然后通过它进行分组/聚合。这个事情谁有经验?

0 投票
3 回答
596 浏览

java - 将多个对象合并为 Morphia 的复杂对象时出现问题

我正在尝试将这三个对象合并为一个复杂的对象:

我的目标是使用 Morphia 将 Person 对象保存在 MongoDB 中,这也是我希望文档布局的方式。我已经创建了一个文档构建器,它结合了每个对象的列表。每个人都会得到一份所有事件的列表,但只能接收特定的礼物。虽然我的文档构建器确实创建了 Morphia 可以保留的文档,但只有最后一个收件人的礼物(排序顺序)被插入到所有人员的事件中。虽然对于正确的事件。

如果我通过删除外部循环并让该方法为 Persons 列表的特定索引获取参数来稍微修改代码以一次处理一个人:

我得到一个带有正确礼物的完整 Person 对象。如果尝试将此修改后的版本输入循环,则问题又回来了。我尝试过使用常规的 for 循环和同步集合。我已经尝试使用 Google Guava 的 ImmutableArrayList 并且仍然没有运气。我知道问题是我在访问列表时正在更改列表,但无论如何我都找不到它。我写了一个直接使用 MongoDB 驱动程序的 DAO,它可以正常工作,但它的代码要多得多,而且非常难看。我真的希望这种方法能够奏效,答案就在我面前,但我就是看不到。任何帮助将不胜感激。