当前位置: 首页 > 知识库问答 >
问题:

使用Jongo时使用

勾向文
2023-03-14

有没有办法在使用 jongo 查询 MongoDB 时添加 allowDiscUse: true?我发现这样的错误 - '排序超出了 104857600 字节的内存限制,但没有选择加入外部排序。正在中止操作。传递 allowDiskUse:true 可以选择加入,可以通过以下方式阻止,您的聚合看起来像

aggregate([{$sort:...},{$$skip:...}...],{allowDiscUse: true})

但据我所知,Jongo 中的聚合类仅将管道应用于自身,然后您可以使用 as 方法执行。

MongoCollection catalogCollection = mongoHolder.getCatalogJongo(param.id, false);

Aggregate aggregation = catalogCollection.aggregate("{$match: #}", query.build());
aggregation.and("{$skip: #}", param.offset);
aggregation.and("{$limit: #}", param.limit);
List<BasicDBObject> result = aggregation.as(BasicDBObject.class);

是否有任何方法可以将该参数传递给mongo而不从Jongo切换到其他东西?

共有1个答案

慎星纬
2023-03-14

您可以使用选项方法:

AggregationOptions options = AggregationOptions.builder().allowDiskUse(true).build());

List<BasicDBObject> result = collection.aggregate("...").options(options).as(BasicDBObject.class);

请参见Jongo聚合测试类以查看工作示例https://github . com/bguerout/Jongo/blob/20 ed 6 e 79 c 0801 AE 1af 2d C3 D4 fee 240 e 201 ad 93 DD/src/test/Java/org/Jongo/Aggregate test . Java # L120

 类似资料:
  • Jongo, 在 Java 中像 Mongo shell 一样使用 Mongo 忠实还原: Jongo 修复了 Mongo 查询语言在 Java 中时不能使用的问题,  复制/粘贴你的 shell 查询就可以了 面向对象: 保存对象到 collections& 从 collections 查找对象 . 使用你自己的类库或者内嵌的 Jackson 做转换  结实好用:  和 Mongo Java d

  • 我使用Jongo查询mongodb。问题是,当我尝试将项添加到数组字段时,会出现这样的错误: HTTP状态500-请求处理失败;嵌套的异常是java。lang.IllegalArgumentException:{$addToSet:{bodyParameters:[{“first”:{“weight”:1.0,“height”:2.0,“腰围”:3.0,“肱二头肌”:4.0,“胸部”:5.0,“前

  • 问题内容: 我使用spring数据和方法来获取模型。调用此方法时如何使用查询提示? 上面的源代码工作正常,但是我不能为我的JPA提供程序(在我的情况下为EclipseLink)设置QueryHint。 以上是我使用spring-data使用查询提示的方式, 我还发现了这个尚未解决的问题。 问题答案: 当我想使用spring-data创建查询时,请遵循上述算法。 1)是否已经提供的查询 通过弹簧数据

  • 我使用spring数据和方法获取模型。调用此方法时如何使用查询提示 上面的源代码运行良好,但我无法为我的JPA提供者(在我的例子中是EclipseLink)设置QueryHint。 我使用spring数据使用查询提示的方式如下:, 我也发现这个还没有解决。

  • 问题内容: 我一直在nodejs中编程,研究了如何同时使用socket.io和对节点服务器的ajax调用。socket.io是否设计为替代ajax?我很好奇,在哪种情况下使用socket.io更好,而哪种ajax更好。感谢您的输入。 问题答案: 好吧,Web套接字(通过socket.io)提供的主要内容之一就是ajax缺乏的是服务器推送。因此,对于ajax,如果您想了解服务器上的新事件(例如,另一

  • 我尝试使用MockWebServer对我的应用编程接口的各种响应。我做了一个简单的例子,只是为了尝试我想做的是一种工作方法。 mockWebServer不是要“模拟”我的http连接的endpoint吗?像真正的服务器?每当我试图打电话时,我都会感到莫名其妙的惊讶。 我用错了吗?它不应该只是替换服务器的响应吗?(嘲笑) E D I T: 我在清单上有互联网许可。 我使用: 代码: Logcat: