如何使用 mongodb_fdw 将动态 JSON 对象绑定到 PostgreSQL?

How to bind dynamic JSON objects to PostgreSQL, using mongodb_fdw?

Foreign Data Wrapper for MongoDB is pretty awesome! I've gotten it to work using these instructions,除了:

我在最近的 PostgreSQL 版本中发现 these slides JSON 功能。整洁的。但是 BSONJSONJSONB 似乎没有被 FDW 识别为 SQL 数据类型。

如果我使用:

  CREATE FOREIGN TABLE t6
  (
      "aaa.bbb" JSON    -- 'bbb' is an array of JSON objects
  )
  SERVER mongo_server OPTIONS(...);

  SELECT "aaa.bbb" AS bbb FROM t6;

我得到:

  psql:6.sql:152: ERROR:  cannot convert bson type to column type
HINT:  Column type: 114

正常类型 TEXTFLOAT 等都有效。

EnterpriseDB fork 做到了,正如@pozs 指出的那样。只需将您的数据标记为 JSON 类型。

然而,构建系统对我来说相当奇怪,并没有真正为您提供缺少构建组件的正确错误(它显然是基于 Linux 的,只是希望您拥有一堆工具而无需正确检查它们)。

以下是我如何在 OS X + Homebrew:

上构建它
$ brew install libtool libbson autoconf automake
$ ./autogen.sh --with-legacy

请注意 --with-meta 变体 提供 JSON 支持,这就是我选择这个分支的原因。

参考。 https://github.com/EnterpriseDB/mongo_fdw/issues/20