我想知道的Java驱动程序的相当于蒙戈的JavaScript shell的Object.bsonsize(DOC)的方法? 例如,什么是Java代码来执行以下操作:
bobk-mbp:~ bobk$ mongo
MongoDB shell version: 2.0.4
connecting to: test
PRIMARY> use devices;
switched to db devices
PRIMARY> Object.bsonsize( db.profiles.findOne( { _id: "REK_0001" } ) );
186
PRIMARY> Object.bsonsize( db.profiles.findOne( { _id: "REK_0002" } ) );
218
PRIMARY>
如何执行此相同的基本用例MongoDB的Java驱动程序。 它通过JavaDoc中并不明显。
有什么能那样干净有什么Shell中可用的,但是这将工作:
DBObject obj = coll.findOne();
int bsonSize = DefaultDBEncoder.FACTORY.create().
writeObject(new BasicOutputBuffer(), obj));
您可以使用BasicBSONEncoder :
DBObject obj = coll.findOne();
int bsonSize = new BasicBSONEncoder().encode(obj).length;
关于什么:
CommandResult result = db.doEval("Object.bsonsize(db.profiles.findOne({ _id: "REK_0001" }))");
double bsonSize = (Double) result.get("retval");
这是双重的不是int。
doEval是因为第一个版本MongoDB的Java驱动程序的一部分。