问题标签 [gmongo]

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 回答
4445 浏览

mongodb - 通过 Grails 域标准在活动光标中发现 Mongo CursorNotFound 异常

我使用远程数据库连接使用 Grails 2.4.4、mongo 插件 3.0.2、MongoDB 2.4.10。

在我们应用程序的一部分中,一个服务方法会迭代超过 20,000 个用户并向他们发送电子邮件:

在为大约 6000 个用户执行此操作后,我得到了一个 MongoDB 游标异常:

我查找了文档,发现游标在 20 分钟内自动关闭,当我用日志确认它时,这个异常正好在 20 分钟后出现。

但是这种在 20 分钟内自动关闭的行为适用于非活动游标,但这里游标是活动的。

更新

我阅读了一些文章,发现这可能是 TCP keepalive 超时的问题。所以我们将 TCP keepalive 超时时间从默认的 2 小时改为 2 分钟,但还是没有解决问题。

0 投票
1 回答
547 浏览

java - doEval() 带多行字符串参数

使用 Groovy 2.3.6、GMongo 1.2、Java 1.8、MongoDB 3.0.0...

我正在尝试使用doEval()来获取集合中的文档计数。(出于各种原因,我想使用doEval()而不是count())。使用单行字符串参数调用doEval()会返回双精度值为 1.0 的 retval 和双精度值为 1.0 的 ok,这正是我所期望的:

如果参数在多行上,则返回的 retval 为空(确定为 1.0)。

我希望 doEval 返回 1.0 而不是 null 的 retval,就像在第一个示例中一样。这是一个错误还是我的期望不正确?应该doEval()支持多行字符串参数吗?

0 投票
2 回答
2129 浏览

mongodb - 如何拦截和记录 mongodb 查询?

如何获取从gmongo驱动程序发送到的确切查询mongod(用于调试目的)。

mysql中,它是通过添加logSql = true到数据源来实现的。

我正在编写一个聚合查询,其中包含开始日期和结束日期之间的匹配管道。日期作为普通的 java Date 类给出。

而且它似乎没有根据日期过滤结果。它把一切都还给了我。

0 投票
1 回答
2569 浏览

mongodb - 如何在没有 _id 的情况下创建 mongodb 集合

我的项目是在 GMONGO 框架上构建的,所有域都是使用属性 id 作为字符串创建的。所以当应用程序是应用程序时,grail 框架将创建具有 _id 属性的 mongodb 集合。在 UI 中检索 _id 存在限制。因此在服务中“_id”被重写为“id”以克服该问题。我们可以默认使用“id”而不是“_id”创建集合吗?

0 投票
1 回答
659 浏览

mongodb - 创建一个 mongo 连接并使其处于活动状态,以便在 Ready!API 中执行整个测试套件

如果您想gmongo为整个测试套件建立连接,然后在执行整个测试套件后在拆除操作中将其关闭,我们该怎么做?

目前我正在做的是,我正在为特定的测试步骤创建一个连接,然后在执行测试步骤后,我使用代码关闭连接mongoClient.close()

但是现在有一个要求,我需要在测试套件开始执行之前创建连接,在测试用例/测试步骤中的整个测试套件中使用相同的连接,然后在整个测试套件执行后关闭连接。

谁能告诉我如何使用Ready!API做到这一点?

我可能听起来迟钝,因为我是 Ready API 的新手,所以请多多包涵 这是我用来创建与 mongo 的连接的代码

所以我一直在使用当前代码来创建连接。实际上我希望这是三个测试套件。第一个测试套件将包含用于创建连接的 groovy 脚本,第二个测试套件将包含我所有的测试用例,第三个测试套件将包含 mongo 关闭连接脚本。

我们使用属性文件中的环境值。这里的 MongoServer 具有建立连接的环境的值

我无法理解@Rao,你是如何在测试用例中调用 conn 变量的。特别是 context.testCase.testSuite.db?.connection 部分。“?”是什么意思?表示,您能否在上述情况下告诉我,如何执行该过程

0 投票
0 回答
97 浏览

mongodb - Grails Gorm-MongoDB 插件中是否有 GMongo 的替代品?

我正在处理一个非常大的代码库,它大量使用 GMongo 库来简化对 mongo 数据库的访问。据我了解,从 GORM for MongoDB 5.0 开始,gmongo 已被删除。

我现在需要将我的 mongo java 驱动程序升级到 3.4.2。这需要我将 GORM for MongoDB 升级到 5.0。我很快意识到,如果没有 GMongo 的替代品,我正在努力从我们的整个代码库(由 10 个应用程序和 20 多个插件组成)中删除 gmongo 的使用。有谁知道我如何在不完全删除我的代码库中使用 GMongo 语法的情况下解决这个问题?

0 投票
2 回答
1703 浏览

database - 多次插入 mongodb - 只有第一个集合被更新

我正在尝试更新我在 mlab 上托管的 mongodb 实例中的集合。

我正在运行以下代码:

第一个集合得到更新,第二个没有。

使用相同/不同的有效 Json 数组会产生相同的结果。只有第一个得到更新。

我已经看到这个问题重复文档 - 相同的集合,我可以理解为什么它不起作用。但我的问题是跨越两个单独的集合?

在 mlab 上手动插入数据时,文档会很好地进入第二个集合 - 所以我相信它允许跨单独的集合重复数据。

我是 mongo 的新手 - 我错过了一些简单的东西吗?

更新:

回应是:

但是没有为第二个数据集输入任何内容。

更新 v2:

如果我在两次插入后拨打电话,例如:

数据集得到更新!

0 投票
2 回答
190 浏览

java - Groovy gmongo 批处理

我目前正在尝试使用 Gmongo 驱动程序在 groovy 中运行批处理作业,该集合约为 8 gigs 我的问题是我的脚本试图将所有内容加载到内存中,理想情况下我希望能够批量处理类似于 Spring Boot Batch 所做的,但在 groovy 脚本中

我已经尝试过 batchSize(),但是这个函数仍然将整个集合检索到内存中,只是为了将它应用于我在批处理中的逻辑。

这是我的例子