问题标签 [spring-mongo]
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.
java - Spring/Rest/MongoDB 中的嵌入式类
我在组织类中嵌入了一个地址类。发生的情况是,当我向组织发布地址时,地址类的 ID 字段没有被填充。
我知道...在 MongoDB 中,子文档不需要他们的 ID。好吧,我希望他们拥有一个,以防我决定将它们解耦或删除特定地址。我确实为地址创建了一个 id 字段,但不知道为什么它没有被填充。
'
我需要做一些特别的事情来做到这一点吗?当我初始化地址类时,我可以自己调用那个 ID 生成器吗?
蒂亚!
mongodb - MongoDB 统计多个字段
这是输入集合:
有谁知道如何通过聚合获得以下文件?
另外,我们如何使用 Spring Data 来实现呢?
mongodb - 使用 spring mongo 自定义聚合
我正在尝试做一个聚合查询,它结合了来自 2 个集合的文档,如下所示:
当我从 mongo shell 运行它时,这工作正常,但我无法从 spring mongo 运行它。
我知道如何使用“BasicDBObject”创建自定义查询,但我不知道如何使用“db.clients.distinct(”。
有任何想法吗 ?
mongodb - Spring Data MongoDB 副本集 UserCredentials 配置?
如果我设置应用程序可以从 MongoDB 副本集的辅助成员中读取,并且集的 ecah 成员需要身份验证才能访问,我该如何设置副本成员的每个用户凭据?我的 MongoDB 配置与 Spring Data MongoDB 如下:
谷歌搜索文章:https ://scottizu.wordpress.com/2013/10/03/getting-started-with-spring-and-mongo-db/
但是所有集合成员的凭据必须相同?
arrays - 搜索 MongoDB 对象数组,其中属性具有超过 1 个数组元素的相同值
我有一个产品的 Mongo 集合,其中包含一个对象数组的类别字段。
因为一个产品可以有多个类别,我想强制一个主要类别关系(一对一)。但是,在数据迁移中,某些文档对于文档中的多个类别具有 isPrimary 属性 true。我需要为类别数组中的多个数组元素找到 isPrimary 为真的产品。这是我到目前为止所拥有的:
但这只会给我一个数组元素不存在 isPrimary 的结果。我不知道如何查询 isPrimary 在多个数组元素上具有相同的值。此外,这也将是一个 Spring 查询:
mongodb - 更新所有文档中的 _class 属性
我将 mongo 与 spring 一起使用,并且在不同集合中的许多文档中都有 _class 属性,在某些时候我更改了我的包名称,这导致在 _class 属性中具有旧包名称的旧文档出现错误。在所有集合和文档的 _class 属性中更新包名称的最佳方法是什么?
我设法编写了一个脚本来对特定集合进行更改(它还需要递归,因为某些文档有一些嵌套的子文档)。但我想要一个适用于所有收藏的解决方案。
我试图将文档转换为字符串替换包名称并转换回 json 但这导致
转换成
有什么简单的方法可以实现这种更新任务吗?
mongodb - 捕获在 Mongodb 的大查找查询期间添加的未知文档
我想知道Spring Mongo API
将find
所有内容加载到List
. 如果搜索结果包含十亿条记录,会不会影响内存?有人可以建议一种更好的方法来实现这一点,而无需将所有这些都加载到内存中。使用 limit 会有所帮助,但存在一个缺陷,即它不知道是否将新文档插入到集合中。X of billion
好吧,如果集合在读取记录后进行了修改,则 find by limit 将具有相同的效果。
所以两个问题:
- 通过不在内存中加载所有内容来提高性能
- 您将如何解决在处理过程中添加的这个未知文档?
来自 API 的代码
mongodb - 为什么我在 Spring Data Mongo 中出现聚合异常,但在 Mongo shell 中却没有?
我有一个在 MongoDB Shell 中工作的查询,但是当我增加要返回的文档数量时,它使用 Spring Data MongoDB 抛出“聚合结果超过最大文档大小 (16MB)”异常。
这是返回没有错误的 shell 查询:
这是 Spring 数据片段:
当我限制说 100 或 1000 条记录时,一切正常。当我增加到 10,000 时,我得到“聚合结果超过最大文档大小 (16MB)”异常。
以下是我正在使用的版本供参考:
更新:
背景:我之所以选择聚合解决方案,是因为我在使用 find() 时超出了 32MB 的排序限制。我知道添加索引可以解决这个问题。不幸的是,此解决方案无法扩展。我想对列表网格中的所有列进行排序,这意味着要索引 10 多列。当然,从 UI 我可以将排序限制为特定列,但我再次试图避免该解决方案,因此我尝试了聚合。
看来使用光标是我唯一的解决方案。谁能确认 Spring Data MongoDB 不提供直接游标支持,这意味着我必须使用 MongoDB 的 API?
java - 在 Mongo 中构建倒排列表的更快方法
我想在我的 MongoDB 集合中构建倒排列表。集合看起来像这样:
word
是字典中的某个 id 并且docToPos
映射document
到position
- 例如,单词 2 在文档 1 中的位置 1,单词 9 在文档 2 中的位置 2、43 和 1246。
我想添加到数据库的每个新文档只是一个带有单词 id 的数组:
所以使用spring-mongo我有这个java代码:
(upsert方法由我实现)
此解决方案有效,但如果文档有 100 000 个单词,则需要 100 000 次查询才能到达 mongo。
所以最后,我的问题是:有没有一种方法可以更快地做到这一点?例如:一次查询整个数组并在数据库中执行?我知道里面有eval
函数mongo
,但是里面没有mongo-spring
java - 在数据库之间切换 Spring MongoDb
我有一个案例,我需要使用 Spring mongodata(版本:1.6.2)在 mongo 数据库之间切换。目前,我在 db-config.xml 中使用 mongo 模板配置了默认数据库,并且有带注释的存储库;需要在运行时从一个数据库/模板切换到另一个;执行必要的操作并切换回默认操作。我提到了几个链接, Spring-data-mongodb 在一个 Mongo 实例中连接到多个数据库, 并使 spring-data-mongodb 成为多租户 我需要在运行时使用相同的存储库集。是否可以在配置级别处理我的案例?还是我们需要扩展 Dbfactory 来实现这一点?使用 Dbfactory,我可以使用同一组带注释的存储库吗?
感谢任何帮助。