我一直在使用 MongoInputFormat,它允许将 MongoDB 集合中的所有文档放入用 Hadoop 编写的 MapReduce 作业。
正如您在提供的示例(this、this和this)中看到的那样,提供给映射器的文档类型是BSONObject(Java 中的接口)。
现在我也非常喜欢Morphia,它允许将原始数据从 MongoDB 映射到更易于使用的 POJO。
因为我只能得到一个 BSONObject 作为输入,所以我考虑过使用Morphia wiki页面底部描述的方法:
BlogEntry blogEntry = morphia.fromDBObject(BlogEntry.class, blogEntryDbObj);
我的问题是这种方法需要一个DBObject而不是BSONObject。DBObject 实际上是:
public interface DBObject extends BSONObject
如您所见,我不能简单地从 BSONObject 转换为 DBObject 并调用提供的方法。
我如何以最好的方式处理这个问题?