mongodb - 按字节大小对 MongoDB 文档进行排序

标签 mongodb

我想知道是否可以按以字节/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...)排序并打印出结果,如果您的收藏量很大,则不建议这样做。

关于mongodb - 按字节大小对 MongoDB 文档进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113487/

相关文章:

javascript - Node.js:通过迭代的 JSON POST 数据创建多个 MongoDB 文档

node.js - Mongoose findOneAndUpdate 不接受开关案例值

java - 根据多个条件从 mongodb 检索所有匹配记录

mongodb - 在 MongoDb 中使用副本集的三个节点和 2 个已关闭

mongodb - Grails过渡属性无法验证错误?

string - Mongo C# 将 ObjectId 反序列化为字符串

Heroku 上 Spring Boot 应用程序的 MongoDB 连接

json - Node.js 服务器 : JSON. 字符串化深层对象

mongodb - oplog.rs 文档中的 "h"代表什么?

java - 返回嵌套在 mongo 文档中的随机元素