documentdb_core
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
documentdb | 0.109 | SIM | MIT | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 9000 | documentdb | No | Yes | Yes | Yes | No | No | - |
| 9010 | documentdb_core | No | Yes | Yes | Yes | No | No | - |
| 9020 | documentdb_distributed | No | Yes | Yes | Yes | No | No | - |
| 9030 | documentdb_extended_rum | No | Yes | Yes | Yes | No | Yes | - |
| Related | mongo_fdw rum pg_jsonschema jsquery pg_cron postgis vector |
|---|---|
| Depended By | documentdb documentdb_distributed |
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| 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 |
Build
You can build the RPM / DEB packages for documentdb using pig build:
pig build pkg documentdb # build RPM / DEB packages
Install
You can install documentdb directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install documentdb; # Install for current active PG version
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
Preload:
shared_preload_libraries = 'pg_documentdb, pg_documentdb_core';
Create Extension:
CREATE EXTENSION documentdb_core;
Usage
documentdb_core: Core API surface for DocumentDB for PostgreSQL
DocumentDB provides MongoDB-compatible document database functionality built on PostgreSQL. The documentdb_core extension introduces BSON datatype support and operations for native Postgres.
BSON Data Type
The extension adds a native BSON (Binary JSON) data type to PostgreSQL, enabling storage and manipulation of MongoDB-style documents.
Basic Document Operations
Documents are managed through MongoDB-compatible CRUD operations via the DocumentDB API layer:
import pymongo
client = pymongo.MongoClient(
'mongodb://user:pass@localhost:10260/?tls=true&tlsAllowInvalidCertificates=true'
)
db = client["myDatabase"]
collection = db.create_collection("myCollection")
# Insert documents
collection.insert_one({
'name': 'John Doe',
'email': '[email protected]',
'address': '123 Main St'
})
collection.insert_many([
{'name': 'Jane Smith', 'email': '[email protected]'},
{'name': 'Alice Johnson', 'email': '[email protected]'}
])
# Query documents
for doc in collection.find():
print(doc)
single = collection.find_one({'name': 'John Doe'})
Aggregation Pipelines
pipeline = [
{'$match': {'name': 'Alice Johnson'}},
{'$project': {'_id': 0, 'name': 1, 'email': 1}}
]
results = collection.aggregate(pipeline)
for doc in results:
print(doc)
Components
- documentdb_core: BSON datatype support and operations for native Postgres
- documentdb (pg_documentdb): Public API surface providing CRUD functionality
- pg_documentdb_gw: Gateway protocol translation layer (MongoDB wire protocol to PostgreSQL)
The extension supports full-text search, geospatial queries, and vector search on BSON documents.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.