documentdb_core

微软DocumentDB的核心API层实现

概览

扩展包名版本分类许可证语言
documentdb0.109SIMMITC
ID扩展名BinLibLoadCreateTrustReloc模式
9000documentdb-
9010documentdb_core-
9020documentdb_distributed-
9030documentdb_extended_rum-
相关扩展mongo_fdw rum pg_jsonschema jsquery pg_cron postgis vector
下游依赖documentdb documentdb_distributed

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY0.1091817161514documentdb-
RPMPIGSTY0.1091817161514documentdb_$vpostgresql$v-contrib, pg_cron_$v, pgvector_$v, rum_$v
DEBPIGSTY0.1091817161514postgresql-$v-documentdbpostgresql-$v-cron, postgresql-$v-pgvector, postgresql-$v-rum
OS / PGPG18PG17PG16PG15PG14
el8.x86_64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.107PIGSTY MISS
el8.aarch64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.107PIGSTY MISS
el9.x86_64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.107PIGSTY MISS
el9.aarch64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.107PIGSTY MISS
el10.x86_64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.107PIGSTY MISS
el10.aarch64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.107PIGSTY MISS
d12.x86_64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY MISS
d12.aarch64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY MISS
d13.x86_64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY MISS
d13.aarch64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY MISS
u22.x86_64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY MISS
u22.aarch64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY MISS
u24.x86_64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY MISS
u24.aarch64PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY 0.109PIGSTY MISS

构建

您可以使用 pig build 命令构建 documentdb 扩展的 RPM / DEB 包:

pig build pkg documentdb         # 构建 RPM / DEB 包

安装

您可以直接安装 documentdb 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install documentdb;          # 当前活跃 PG 版本安装
pig ext install -y documentdb -v 18  # PG 18
pig ext install -y documentdb -v 17  # PG 17
pig ext install -y documentdb -v 16  # PG 16
pig ext install -y documentdb -v 15  # PG 15
dnf install -y documentdb_18       # PG 18
dnf install -y documentdb_17       # PG 17
dnf install -y documentdb_16       # PG 16
dnf install -y documentdb_15       # PG 15
apt install -y postgresql-18-documentdb   # PG 18
apt install -y postgresql-17-documentdb   # PG 17
apt install -y postgresql-16-documentdb   # PG 16
apt install -y postgresql-15-documentdb   # PG 15

预加载配置

shared_preload_libraries = 'pg_documentdb, pg_documentdb_core';

创建扩展

CREATE EXTENSION documentdb_core;

用法

documentdb_core: DocumentDB for PostgreSQL 的核心 API 接口

DocumentDB 在 PostgreSQL 上提供 MongoDB 兼容的文档数据库功能。documentdb_core 扩展为原生 Postgres 引入了 BSON 数据类型支持和操作。

BSON 数据类型

该扩展为 PostgreSQL 添加了原生 BSON(二进制 JSON)数据类型,支持 MongoDB 风格文档的存储和操作。

基本文档操作

文档通过 DocumentDB API 层的 MongoDB 兼容 CRUD 操作进行管理:

import pymongo

client = pymongo.MongoClient(
    'mongodb://user:pass@localhost:10260/?tls=true&tlsAllowInvalidCertificates=true'
)

db = client["myDatabase"]
collection = db.create_collection("myCollection")

# 插入文档
collection.insert_one({
    'name': 'John Doe',
    'email': 'john@email.com',
    'address': '123 Main St'
})

collection.insert_many([
    {'name': 'Jane Smith', 'email': 'jane@email.com'},
    {'name': 'Alice Johnson', 'email': 'alice@email.com'}
])

# 查询文档
for doc in collection.find():
    print(doc)

single = collection.find_one({'name': 'John Doe'})

聚合管道

pipeline = [
    {'$match': {'name': 'Alice Johnson'}},
    {'$project': {'_id': 0, 'name': 1, 'email': 1}}
]

results = collection.aggregate(pipeline)
for doc in results:
    print(doc)

组件

  • documentdb_core:原生 Postgres 的 BSON 数据类型支持和操作
  • documentdb (pg_documentdb):提供 CRUD 功能的公共 API 接口
  • pg_documentdb_gw:网关协议转换层(MongoDB 线协议到 PostgreSQL)

该扩展支持对 BSON 文档的全文搜索、地理空间查询和向量搜索。


最后修改 2026-03-14: update extension metadata (953cbd0)