如何获取 bson 文档的字节大小
How to get size in bytes of bson documents
bson文档的size()函数返回的int值是字节数吗? (无法找到此 API 的详细信息)。
如何获取 bson 文档的字节大小?这是我的代码。
import org.bson.Document;
MongoDatabase db...;
MongoCollection<Document> mongoCollection = db.getCollection(...);
MongoCursor<Document> cursor = mongoCollection.find().iterator();
Document doc = cursor.next();
int size = doc.size(); // does this return number of bytes
// how to get size of doc in bytes?
将文档作为 RawBsonDocument
然后使用 getByteBuffer().remaining()
方法。
MongoCollection<RawBsonDocument> mongoCollection = db.getCollection(collectionName, RawBsonDocument.class);
MongoCursor<RawBsonDocument> cursor = mongoCollection.find().iterator();
RawBsonDocument doc = cursor.next();
int size = doc.getByteBuffer().remaining()
如果您需要知道对象在进入集合之前的大小,我使用了这段代码,其中 o 是要测试的对象:
BsonDocument bsonDocument = BsonDocumentWrapper.asBsonDocument(o, getMongoCollection().getCodecRegistry());
RawBsonDocument rawBsonDocument = RawBsonDocument.parse(bsonDocument.toJson() );
int bsonSize = rawBsonDocument.getByteBuffer().remaining();
如果您想防止可能超过最大大小 16Mb 的对象,这将特别有用:https://docs.mongodb.com/manual/reference/limits/
bson文档的size()函数返回的int值是字节数吗? (无法找到此 API 的详细信息)。
如何获取 bson 文档的字节大小?这是我的代码。
import org.bson.Document;
MongoDatabase db...;
MongoCollection<Document> mongoCollection = db.getCollection(...);
MongoCursor<Document> cursor = mongoCollection.find().iterator();
Document doc = cursor.next();
int size = doc.size(); // does this return number of bytes
// how to get size of doc in bytes?
将文档作为 RawBsonDocument
然后使用 getByteBuffer().remaining()
方法。
MongoCollection<RawBsonDocument> mongoCollection = db.getCollection(collectionName, RawBsonDocument.class);
MongoCursor<RawBsonDocument> cursor = mongoCollection.find().iterator();
RawBsonDocument doc = cursor.next();
int size = doc.getByteBuffer().remaining()
如果您需要知道对象在进入集合之前的大小,我使用了这段代码,其中 o 是要测试的对象:
BsonDocument bsonDocument = BsonDocumentWrapper.asBsonDocument(o, getMongoCollection().getCodecRegistry());
RawBsonDocument rawBsonDocument = RawBsonDocument.parse(bsonDocument.toJson() );
int bsonSize = rawBsonDocument.getByteBuffer().remaining();
如果您想防止可能超过最大大小 16Mb 的对象,这将特别有用:https://docs.mongodb.com/manual/reference/limits/