好的,找到问题了,BasicDBObject中的默认编解码器没有覆盖geoJSON内容。我不确定我所做的是对的,但似乎有效。
@Test
public void test() throws Exception{
CodecRegistry cr = fromProviders(new ValueCodecProvider(), new BsonValueCodecProvider(), new DBObjectCodecProvider(), new GeoJsonCodecProvider());
codec = cr.get(BasicDBObject.class);
BasicDBObject dbo = new BasicDBObject();
dbo.put("name", "some-name");
dbo.put("location", new Point(new Position(100, 200)));
System.out.println(dbo.toJson(codec));
}