DocumentDB Blog
DocumentDB 1.0 is here
The first generally available release of DocumentDB, the MIT-licensed, MongoDB-compatible document database built on PostgreSQL.
DocumentDB 1.0 is available today. It is the first generally available release of DocumentDB: an MIT-licensed document database that speaks the MongoDB wire protocol and stores native BSON in PostgreSQL. Most MongoDB drivers, tools and queries work against it unchanged, and the data lives in a database you can run, inspect and operate like any other PostgreSQL deployment.
The v1.0-0 release is the same code as the second release candidate, which the community tested over the past weeks. Thank you to everyone who installed an RC, ran a workload against it and filed what they found.
What’s in 1.0
1.0 is a stabilization release. Most of the work since v0.117 makes existing behavior correct and safe under load, rather than adding surface area. Among the changes in this release:
- Security fixes.
findandaggregatewithbatchSize: 0now run the permission check,$mergeand$outrequire write permission on their target collection, andcreateUserandupdateUserreject passwords that fail SASLprep. - Stability. Fixes for backend crashes in
$getField/$setField,$firstN/$lastNand$documentsinside$facet, a deadlock between concurrentdropIndexes, and several RUM index vacuum and ordered-scan issues. The gateway now returns specific, retryable error codes instead ofInternalErrorand exits with an error instead of panicking when PostgreSQL is unreachable at startup. - Collation, opt-in. With
documentdb_core.enableCollationon, more operators honor collation, includingcount, the$stdDevPop,$stdDevSamp,$medianand$percentileaccumulators, and the symbol BSON type. Collation is off by default, anddistinct,findAndModifyandupdatedon’t support it yet; see the known issues. - Geospatial.
$near,$nearSphereand$geoNearno longer fail on nearly coincident points or at longitude -180 on a2dsphereindex.
Get DocumentDB 1.0
- Docker, on Linux, macOS or Windows:
ghcr.io/documentdb/documentdb/documentdb-localwith tagspg15-1.0.0throughpg18-1.0.0;latestis PostgreSQL 17. Start with the Docker Quick Start. - Linux packages for Ubuntu 24.04 and EL9 on PostgreSQL 17 or 18, amd64 or arm64, from the documentdb.io APT and YUM repositories or the clean-host installer. See Install DocumentDB.
- The DocumentDB extension for Visual Studio Code 1.0 sets up DocumentDB Local for you. Read about the release.
- Kubernetes: the DocumentDB Kubernetes Operator 1.0.0 is generally available alongside the engine. See DocumentDB 1.0 on Kubernetes.
Usage telemetry in the container image
Starting with 1.0, the documentdb-local container image sends usage telemetry by default: the image version, operating system and CPU architecture, once at startup and then hourly. It never sends your data, queries, names or credentials. The data goes to Scarf, which sees the network address each request comes from, so don’t assume it is anonymous.
To turn it off, add -e DOCUMENTDB_USAGE_TELEMETRY=false (or -e DO_NOT_TRACK=1) to docker run. The Linux packages, the extensions and the gateway collect nothing. The privacy statement has the details.
Upgrading
- Linux packages from v0.116 or v0.117 upgrade in place. Upgrade the whole stack together, then update the extensions in every database that has DocumentDB. Follow Upgrading.
- Containers: a 1.0 image started on an existing data volume does not update the DocumentDB schema in it (documentdb#773). Start 1.0 on a new volume and reload your data; see Upgrading the image.
- Release candidates have no upgrade path. Move RC hosts and volumes to a clean install of 1.0.
The 1.0 release notes cover every upgrade path and the known issues. The v1.0-0 release has the packages and checksums.
What’s next
With 1.0 out, the project plans a long-term support track alongside a development track for 1.1 and beyond. The proposed policy is still under discussion in documentdb/documentdb#597.
Try 1.0 with a workload that matters to you, and tell us what you find on GitHub or Discord.