New DocumentDB 1.0 is here. See what's new

← Back to all blog posts

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. find and aggregate with batchSize: 0 now run the permission check, $merge and $out require write permission on their target collection, and createUser and updateUser reject passwords that fail SASLprep.
  • Stability. Fixes for backend crashes in $getField/$setField, $firstN/$lastN and $documents inside $facet, a deadlock between concurrent dropIndexes, and several RUM index vacuum and ordered-scan issues. The gateway now returns specific, retryable error codes instead of InternalError and exits with an error instead of panicking when PostgreSQL is unreachable at startup.
  • Collation, opt-in. With documentdb_core.enableCollation on, more operators honor collation, including count, the $stdDevPop, $stdDevSamp, $median and $percentile accumulators, and the symbol BSON type. Collation is off by default, and distinct, findAndModify and update don’t support it yet; see the known issues.
  • Geospatial. $near, $nearSphere and $geoNear no longer fail on nearly coincident points or at longitude -180 on a 2dsphere index.

Get DocumentDB 1.0

  • Docker, on Linux, macOS or Windows: ghcr.io/documentdb/documentdb/documentdb-local with tags pg15-1.0.0 through pg18-1.0.0; latest is 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.