如何获取'find'查询的mongo db文件大小限制?

时间:2017-04-03 09:36:38

标签: java mongodb

这看起来很奇怪,但让我进一步解释,我需要查询mongodb集合并获取文档。收集大小以TB为单位。我必须定期对文件集进行一些操作(比方说,每2小时后)。操作很简单,查找文档(按照标准),并复制到另一个集合并从原始集合中删除。问题是我无法决定(不知道)要检索的文档大小。我正在使用MongoTemplate(我必须使用它)。我确信文档的大小必须小于RAM。但仍然是获取文档大小的过程是什么,所以我不会得到任何超时或空间错误。

2 个答案:

答案 0 :(得分:0)

我认为它符合你的目的 -

Object.bsonsize(db.students.find())
Object.bsonsize(db.students.findOne({*condition*}))

它返回特定文档的大小(以字节为单位)。

答案 1 :(得分:0)

一个mongo对象的最大对象大小为16MB。我假设处理16MB应该对您的系统没问题。因此,您从源集合中获取一个对象并将其复制到目标集合。

对于返回大量结果的查询,使用游标迭代每个结果并将结果复制到新集合中。