如何将使用 MongoDbIO.read() 从 Mongo 集合中读取的文档直接转换为 table 行而不明确提及每个键?

How to convert Documents read from Mongo Collection using MongoDbIO.read() directly to a table row without explicity mentioning each and every key?

Read read= MongoDbIO.read().withUri(<uri>).withBucketAuto(true)
            .withDatabase(<db>).withCollection(<collection>);

PCollection<Document> lines = p.apply(read);

如何动态地将 lines 转换为 tablerows 而无需 获取每一行并像这样设置 table 行:

String offer_id=document.getString("oid");
TableRow row;
row=new TableRow().set("offerId", offer_id)

我认为现在不可能,因为无论如何 MongodbIO.Read 将 return 必须转换为 PCollection<TableRow>.

PCollection<Document>

但是,如果您需要它将 MongodbIO.Read 的结果写入 BigQuery,那么我认为您可以尝试使用 BigQueryIO.Write.withFormatFunction(...) 并提供将 MongoDB 文档转换为 TableRow。不过,我认为在性能方面会有所不同。