这看起来很奇怪,但让我进一步解释,我需要查询mongodb集合并获取文档。收集大小以TB为单位。我必须定期对文件集进行一些操作(比方说,每2小时后)。操作很简单,查找文档(按照标准),并复制到另一个集合并从原始集合中删除。问题是我无法决定(不知道)要检索的文档大小。我正在使用MongoTemplate(我必须使用它)。我确信文档的大小必须小于RAM。但仍然是获取文档大小的过程是什么,所以我不会得到任何超时或空间错误。
答案 0 :(得分:0)
我认为它符合你的目的 -
Object.bsonsize(db.students.find())
Object.bsonsize(db.students.findOne({*condition*}))
它返回特定文档的大小(以字节为单位)。
答案 1 :(得分:0)
一个mongo对象的最大对象大小为16MB。我假设处理16MB应该对您的系统没问题。因此,您从源集合中获取一个对象并将其复制到目标集合。
对于返回大量结果的查询,使用游标迭代每个结果并将结果复制到新集合中。