我想知道是否可以通过以字节/ kb为单位的文档大小对MongoDB集合进行排序。我一直在检查db.collection.stats(),但这只给我有关集合的信息,而不是文档。
鉴于不经常更改文档大小,一种可能的解决方案是在文档中添加一个额外的“大小”字段。
要为每个文档添加大小:
db.collection.find().forEach(function(doc) {
doc.size = Object.bsonsize(doc);
db.collection.save(doc);
});
降序排列:
db.collection.find().sort({"size":-1});
另一种解决方案是将所有文档加载到内存中,并使用任何编程语言(js,php,java ...)对结果进行排序并打印出结果,如果您的数据库很大,则不建议这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句