documentdb_core
微软DocumentDB的核心API层实现
仓库
documentdb/documentdb
https://github.com/documentdb/documentdb
源码
documentdb-0.109-0.tar.gz
documentdb-0.109-0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
documentdb | 0.109 | SIM | MIT | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 9000 | documentdb | 否 | 是 | 是 | 是 | 否 | 否 | - |
| 9010 | documentdb_core | 否 | 是 | 是 | 是 | 否 | 否 | - |
| 9020 | documentdb_distributed | 否 | 是 | 是 | 是 | 否 | 否 | - |
| 9030 | documentdb_extended_rum | 否 | 是 | 是 | 是 | 否 | 是 | - |
| 相关扩展 | mongo_fdw rum pg_jsonschema jsquery pg_cron postgis vector |
|---|---|
| 下游依赖 | documentdb documentdb_distributed |
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.109 | 1817161514 | documentdb | - |
| RPM | PIGSTY | 0.109 | 1817161514 | documentdb_$v | postgresql$v-contrib, pg_cron_$v, pgvector_$v, rum_$v |
| DEB | PIGSTY | 0.109 | 1817161514 | postgresql-$v-documentdb | postgresql-$v-cron, postgresql-$v-pgvector, postgresql-$v-rum |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.107 | PIGSTY MISS |
| el8.aarch64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.107 | PIGSTY MISS |
| el9.x86_64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.107 | PIGSTY MISS |
| el9.aarch64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.107 | PIGSTY MISS |
| el10.x86_64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.107 | PIGSTY MISS |
| el10.aarch64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.107 | PIGSTY MISS |
| d12.x86_64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY MISS |
| d12.aarch64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY MISS |
| d13.x86_64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY MISS |
| d13.aarch64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY MISS |
| u22.x86_64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY MISS |
| u22.aarch64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY MISS |
| u24.x86_64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY MISS |
| u24.aarch64 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY 0.109 | PIGSTY MISS |
构建
您可以使用 pig build 命令构建 documentdb 扩展的 RPM / DEB 包:
pig build pkg documentdb # 构建 RPM / DEB 包
安装
您可以直接安装 documentdb 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
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 在 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 文档的全文搜索、地理空间查询和向量搜索。