什么是通过编程设置的上限收集限制

Posted

技术标签:

【中文标题】什么是通过编程设置的上限收集限制【英文标题】:what is the Capped collection limit via programing 【发布时间】:2022-01-07 19:06:53 【问题描述】:

我尝试通过 java/Spring 数据编程创建/修改上限集合,我正在使用 BasicDBObject,我的 Map 将设置在该 dbObject 中,当我尝试运行程序时,小的 int 值工作正常,但如果我使用 2 GB 的 int 值然后错误就像 int 值太长一样

我尝试了不同的数据类型(BigInt、long、String .. 等)它给出的错误,程序只期望 int 值而不是其他数据类型。

Map<String, Object> commandArguments = new BasicDBObject();
commandArguments.put(CONVERT_TO_CAPPED,COLLECTION_NAME);
commandArguments.put(SIZE, 2147483648);
BasicDBObject command = new BasicDBObject(commandArguments);
Document commandResult = database.runCommand(command);

【问题讨论】:

Java 中整数的最高可能值为 2147483647,因此您传递的值 - 2147483648 - 太大了。 【参考方案1】:

我变了

commandArguments.put(SIZE, 2147483648);

commandArguments.put(SIZE, 2147483648l);

【讨论】:

这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review @Vusal 看起来像是对我的回答。也许不是一个,但仍然是一个答案。也许它应该被否决,但不能被删除 它解决了我的问题,因为 Mongo DB 数据类型是 bigInt64

以上是关于什么是通过编程设置的上限收集限制的主要内容,如果未能解决你的问题,请参考以下文章

Redis额内存回收策略和内存上限

Docker之Linux Cgroup实践

关于http get和form表单post提交数据大小限制

Azure Api 服务请求限制

redis内存管理

ORACLE访问用户有没有上限