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()
如果您需要知道对象在Collection之前所需的大小,我使用此代码,其中o是要测试的Object:
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/,这将特别有用