Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
6186073
docs: release notes and changelog for v0.8.0
tnaum-ms May 12, 2026
ae2cd15
docs: user manual for Query Playground, Interactive Shell, and Collec…
tnaum-ms May 12, 2026
cefa5f4
docs: add screenshots and image references for v0.8.0
tnaum-ms May 12, 2026
ebf9641
docs: update release notes for v0.8.0 with new features and improvements
tnaum-ms May 12, 2026
c042cf8
docs: add link to release notes for version 0.8
tnaum-ms May 12, 2026
5149547
docs: fix broken table and remove leftover IMAGE PROMPT comment
tnaum-ms May 12, 2026
053f4b0
Merge branch 'next' into dev/tnaum/prepare-0.8.0-release
tnaum-ms May 12, 2026
1a7cbf0
docs: soften operator count to 'over 300 in total' in query-runtime.md
Copilot May 12, 2026
c7fada3
docs: update version to 0.8.0 and correct release notes URL in packag…
tnaum-ms May 12, 2026
e47c35a
Merge branch 'next' into dev/tnaum/prepare-0.8.0-release
tnaum-ms May 12, 2026
1da745f
docs: update README with new images for collection view, interactive …
tnaum-ms May 12, 2026
4cb8b7a
docs: update images in README and index files, replacing old screensh…
tnaum-ms May 12, 2026
b2cc2eb
docs: add new walkthroughs for Query Playground and Interactive Shell…
tnaum-ms May 12, 2026
2174318
docs: tweaks to CHANGELOG, README, and user manuals for version 0.8.0…
tnaum-ms May 12, 2026
430230f
docs: update badge links in README for improved visibility and accuracy
tnaum-ms May 12, 2026
d5880d0
chore: replace broken shields.io VS Marketplace badges with CI and li…
tnaum-ms May 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
# Change Log

## 0.8.0

### New Features

- **Context-Aware Autocompletion in Collection View**: The filter, project, sort, and aggregation editors now provide schema-aware field suggestions, type-aware operator ordering, hover documentation, real-time syntax validation, and relaxed query syntax (unquoted keys, BSON constructors, JavaScript expressions). [#508](https://github.com/microsoft/vscode-documentdb/pull/508), [#506](https://github.com/microsoft/vscode-documentdb/pull/506), [#513](https://github.com/microsoft/vscode-documentdb/pull/513), [#518](https://github.com/microsoft/vscode-documentdb/pull/518)
- **Query Playground**: Introduces `.documentdb.js` files for writing and running JavaScript scripts against your cluster with CodeLens execution (per-block and Run All), `console.log()`/`print()`/`printjson()` support, per-file connections, and autocompletion for `db.*` chains and schema fields. No external tools required: the runtime is bundled and works with Entra ID. [#508](https://github.com/microsoft/vscode-documentdb/pull/508), [#573](https://github.com/microsoft/vscode-documentdb/pull/573), [#589](https://github.com/microsoft/vscode-documentdb/pull/589)
- **Interactive Shell**: A full REPL terminal in VS Code with shell commands (`show dbs`, `use <db>`, `help`, `it`, `exit`), persistent eval context (variables carry over between commands), syntax highlighting, tab completion with ghost text, `Ctrl+C` cancellation, and clickable result links. Bundled runtime, no external tools needed, works with Entra ID. [#508](https://github.com/microsoft/vscode-documentdb/pull/508), [#573](https://github.com/microsoft/vscode-documentdb/pull/573), [#576](https://github.com/microsoft/vscode-documentdb/pull/576), [#580](https://github.com/microsoft/vscode-documentdb/pull/580)
- **Cross-Feature Navigation**: Collection View, Query Playground, and Interactive Shell are linked with toolbar buttons, CodeLens actions, clickable terminal links, and clipboard copy/paste for seamless query movement between surfaces. [#589](https://github.com/microsoft/vscode-documentdb/pull/589)
- **About Dialog**: Adds an "About" entry to the Help & Feedback view with extension version, VS Code version, OS details, and registered plugins, plus a Copy button for bug reporting. [#612](https://github.com/microsoft/vscode-documentdb/pull/612)

### Improvements

- **Query Insights: Static Analysis**: Improved performance evaluation with selectivity and fetch overhead metrics, three-color badge system, index strategy advisories, and edge case fixes. AI analysis now aligns with static analysis to avoid contradictions. Demoted score for single-field bitmap indexes on high-selectivity queries. [#615](https://github.com/microsoft/vscode-documentdb/pull/615), [#616](https://github.com/microsoft/vscode-documentdb/pull/616), [#623](https://github.com/microsoft/vscode-documentdb/pull/623)
- **Double-Click to Open Collection View**: The Documents tree item now requires a double-click to open the Collection View, preventing tabs from opening accidentally on single-click browse.
- **Custom Editor Tab Icons**: Collection View, Document View, and Query Playground tabs now display dedicated icons instead of the default webview icon.
- **Telemetry**: Simplified and standardized telemetry instrumentation across connection, discovery, shell, and playground features. [#601](https://github.com/microsoft/vscode-documentdb/pull/601), [#544](https://github.com/microsoft/vscode-documentdb/pull/544), [#599](https://github.com/microsoft/vscode-documentdb/pull/599)
- **Internal Package Rename**: Renamed internal packages to `@documentdb-js` scope for consistency. [#613](https://github.com/microsoft/vscode-documentdb/pull/613)
- **Prerelease Version Migration**: Implemented migration for prerelease version handling in notifications. [#610](https://github.com/microsoft/vscode-documentdb/pull/610)

### Fixes

- **Duplicate Connection Reveal**: Fixed an issue where revealing a duplicate connection failed when the connection was inside a folder. [#602](https://github.com/microsoft/vscode-documentdb/pull/602)

### Dependencies

- **Dependency Updates**: Updated `fast-uri`, `fast-xml-builder`, `basic-ftp`, `path-to-regexp`, `fast-xml-parser`, and `@aws-sdk/xml-builder`. [#624](https://github.com/microsoft/vscode-documentdb/pull/624), [#606](https://github.com/microsoft/vscode-documentdb/pull/606), [#607](https://github.com/microsoft/vscode-documentdb/pull/607), [#609](https://github.com/microsoft/vscode-documentdb/pull/609), [#627](https://github.com/microsoft/vscode-documentdb/pull/627), [#628](https://github.com/microsoft/vscode-documentdb/pull/628), [#629](https://github.com/microsoft/vscode-documentdb/pull/629)

## 0.7.4

### New Features & Improvements
Expand Down
243 changes: 152 additions & 91 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,91 +1,152 @@
# DocumentDB for VS Code

<!-- region exclude-from-marketplace -->

[![Version](https://img.shields.io/visual-studio-marketplace/v/ms-azuretools.vscode-documentdb.svg)](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-documentdb)

<img src="resources/readme/documentdb-logo.png" alt="DocumentDB Logo" style="width:40%; min-width:180px; max-width:320px; height:auto;" />
<!-- endregion exclude-from-marketplace -->

**A powerful, open-source DocumentDB and MongoDB GUI for everyone.**

**DocumentDB for VS Code** helps you browse, manage, and query **DocumentDB** and **MongoDB** databases across any cloud, hybrid, or local environment.

![DocumentDB with a Collection View and auto-completion](resources/readme/vscode-documentdb-vcore.png)

# Features

### Universal DocumentDB and MongoDB Support

Connect to any MongoDB or DocumentDB instance: cloud, hybrid cloud, on-premises, or a local machine.

- **Flexible Connections:** Use a connection string or browse your cloud providers.

- **Cross-Platform Service Discovery:** Connect to DocumentDB and MongoDB instances hosted with your provider.

- **Wide Compatibility:** Full support for all DocumentDB and MongoDB databases.

### Developer-Centric Experience

DocumentDB for VS Code focuses on providing developer productivity features with minimal setup.

- **Multiple Data Views**: Inspect collections using **Table**, **Tree**, or **JSON** layouts, with built-in pagination.

- **Query Editing**: Execute `find` queries with syntax highlighting, auto-completion, and field name suggestions.

- **Document Management**: Create, edit, and delete documents directly from VS Code.

- **Data Import/Export**: Quickly import JSON files or export documents, query results, or collections.

### Open Development

We believe in building in the open. All development, roadmap planning, and feature discussions happen publicly on GitHub.
Your feedback, contributions, and ideas shape the future of the extension.

# Prerequisites

## Known Issues

Here are some known issues and limitations to be aware of when using the DocumentDB VS Code extension:

<!-- region exclude-from-marketplace -->

#### References

- [DocumentDB](https://github.com/microsoft/documentdb)

# How to Contribute

To contribute, see these documents:

- [Code of Conduct](./CODE_OF_CONDUCT.md)
- [Security](./SECURITY.md)
- [Contributing](./CONTRIBUTING.md)

## Legal

Before we can accept your pull request, you will need to sign a **Contribution License Agreement**. All you need to do is to submit a pull request, then the PR will get appropriately labeled (e.g. `cla-required`, `cla-norequired`, `cla-signed`, `cla-already-signed`). If you already signed the agreement, we will continue with reviewing the PR, otherwise the system will tell you how you can sign the CLA. Once you sign the CLA, all future PRs will be labeled as `cla-signed`.

## Code of Conduct

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.

<!-- endregion exclude-from-marketplace -->

# Telemetry

VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkId=521839) to learn more. If you don’t wish to send usage data to Microsoft, you can set the `telemetry.enableTelemetry` setting to `false`. Learn more in our [FAQ](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting).

# Feedback Collection

DocumentDB for VS Code proactively asks for user feedback and provides feedback entry points in the UI. Feedback collection is controlled by VS Code's global telemetry setting.

To disable feedback, set `telemetry.telemetryLevel` to a value other than `all` (e.g., `error` or `off`). Feedback is only active when the level is set to `all`.

# License

[MIT](LICENSE.md)
# DocumentDB for VS Code

<!-- region exclude-from-marketplace -->

[![CI](https://github.com/microsoft/vscode-documentdb/actions/workflows/main.yml/badge.svg)](https://github.com/microsoft/vscode-documentdb/actions/workflows/main.yml)
[![License: MIT](https://img.shields.io/github/license/microsoft/vscode-documentdb)](LICENSE.md)

<img src="resources/readme/documentdb-logo.png" alt="DocumentDB Logo" style="width:40%; min-width:180px; max-width:320px; height:auto;" />
<!-- endregion exclude-from-marketplace -->

**A powerful, open-source GUI for DocumentDB and MongoDB API databases.**

**DocumentDB for VS Code** is a VS Code extension for browsing, querying, and managing databases that use the **MongoDB API wire protocol**. DocumentDB is fully compatible with the MongoDB API, so this extension works with **any MongoDB API database**: [DocumentDB](https://documentdb.io), Azure DocumentDB, AWS DocumentDB, Azure Cosmos DB for MongoDB (RU), MongoDB Atlas, self-hosted instances, and local emulators.

Connect with a connection string, browse through cloud service discovery, or use a local emulator. Everything runs inside VS Code with no external tools required.

![DocumentDB for VS Code showing the Collection View with context-aware autocompletion](resources/readme/vscode-documentdb-hero-screenshot.png)

# Features

## Query Your Data, Your Way

Three integrated query surfaces let you work with your data however you prefer: visually, in scripts, or at a command line. All three share the same schema awareness and are linked with navigation actions, so you can move your work between them seamlessly.

### Collection View

The visual query interface with filter, project, and sort editors. As you type, the editor suggests **field names** from your collection's actual data, **operators** sorted by relevance to each field's type, and **values** appropriate for the context. Hover over any operator to see its documentation.

<p align="center"><img src="resources/readme/collection-view-autocompletion.png" alt="Collection View with autocompletion showing boolean value suggestions and comparison operators" width="650" style="max-width:100%;height:auto;"></p>

- Schema-aware field suggestions with BSON type indicators
- Type-aware operator ordering (comparison operators first for numbers, regex for strings)
- Relaxed query syntax: unquoted keys, single quotes, BSON constructors (`ObjectId()`, `ISODate()`), JavaScript expressions
- Real-time validation with typo detection ("Did you mean `ObjectId`?")
- Dedicated completions for project (`1`/`0`) and sort (`1`/`-1`) values

### Query Playground

Write and run JavaScript scripts in `.documentdb.js` files with CodeLens-driven execution. Each script block has its own **Run** button, and there's a **Run All** at the top. Results appear in a dedicated side panel.

<p align="center"><img src="resources/readme/query-playground.png" alt="Query Playground with CodeLens Run buttons, Collection View and Shell links, and JavaScript code" width="750" style="max-width:100%;height:auto;"></p>

- Full JavaScript syntax with autocompletion for `db.*` chains, collection methods, and schema fields
- `console.log()`, `print()`, and `printjson()` support
- Per-file connections: multiple playgrounds open simultaneously, each connected to a different server
- CodeLens links to open the same query in the Collection View or Interactive Shell

### Interactive Shell

A REPL terminal inside VS Code with shell commands (`show dbs`, `use <db>`, `help`, `it`), persistent variables, syntax highlighting, and tab completion with ghost text suggestions.

<p align="center"><img src="resources/readme/interactive-shell.png" alt="Interactive Shell with tab completion, syntax highlighting, and ghost text field suggestions" width="700" style="max-width:100%;height:auto;"></p>

- Context-aware tab completion for databases, collections, methods, operators, and field names
- Ghost text suggests closing brackets, collection methods, and field names from your schema
- `Ctrl+C` cancellation for long-running operations
- Clickable links in results to open the collection in Collection View or Query Playground

### Zero-Install Runtime

The Query Playground and Interactive Shell require **no external tools**. The query runtime is bundled directly into the extension and reuses the connection you already established. This means:

- No shell executable to install, no PATH configuration, no version mismatches
- Works with **Entra ID authentication** out of the box
- Works identically on Windows, macOS, and Linux

Schema information for autocompletion is gathered locally from documents you browse and query. No data is sent to external services.

## Connect Anywhere

Connect to any database that speaks the MongoDB API wire protocol.

- **Connection strings**: Paste a connection string and connect instantly
- **Azure Service Discovery**: Browse and connect to Azure DocumentDB, Azure Cosmos DB for MongoDB (RU), and DocumentDB on Azure VMs directly from the sidebar
- **MongoDB Atlas**: Connect using your Atlas connection string
- **Entra ID authentication**: Multi-account, multi-tenant support for Azure-hosted databases
- **Local instances and emulators**: Connect to DocumentDB Local, Azure Cosmos DB Emulator, or any local MongoDB API instance
- **Folder organization**: Group your connections into folders and subfolders

## Browse and Manage Data

- **Multiple data views**: Inspect collections using **Table**, **Tree**, or **JSON** layouts with built-in pagination
- **Document management**: Create, edit, and delete documents directly from VS Code
- **Import and export**: Import JSON files or export documents, query results, or entire collections
- **Collection copy-and-paste**: Copy a collection and paste it into another database or server, with conflict resolution strategies
- **Index management**: View, create, hide, unhide, and drop indexes from the tree view

## Query Insights

Analyze query performance with explain plans and get optimization recommendations.

<p align="center"><img src="resources/readme/query-insights.png" alt="Query Insights showing performance diagnostics with badges, metrics, and index recommendations" width="650" style="max-width:100%;height:auto;"></p>

- Static performance analysis with selectivity, fetch overhead, and index coverage metrics
- Three-color badge system highlighting what's working well and what needs attention
- AI-powered index recommendations (experimental, opt-in via settings)

> AI-powered recommendations require the [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) extension and an active Copilot subscription.

## Open Source and Extensible

We believe in building in the open. All development, roadmap planning, and feature discussions happen publicly on GitHub. Your feedback, contributions, and ideas shape the future of the extension.

- **Service Discovery plugins**: Connect to databases hosted on any cloud provider through the extensible plugin architecture
- **Data migration providers**: Third-party extensions can register as migration providers for specialized data movement workflows
- **Community contributions**: We welcome PRs, bug reports, and feature requests

# Prerequisites

No external tools or runtimes are required. Install the extension and start working.

<!-- region exclude-from-marketplace -->

#### References

- [DocumentDB](https://github.com/microsoft/documentdb)

# How to Contribute

To contribute, see these documents:

- [Code of Conduct](./CODE_OF_CONDUCT.md)
- [Security](./SECURITY.md)
- [Contributing](./CONTRIBUTING.md)

## Legal

Before we can accept your pull request, you will need to sign a **Contribution License Agreement**. All you need to do is to submit a pull request, then the PR will get appropriately labeled (e.g. `cla-required`, `cla-norequired`, `cla-signed`, `cla-already-signed`). If you already signed the agreement, we will continue with reviewing the PR, otherwise the system will tell you how you can sign the CLA. Once you sign the CLA, all future PRs will be labeled as `cla-signed`.

## Code of Conduct

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

<!-- endregion exclude-from-marketplace -->

# Telemetry

VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkId=521839) to learn more. If you don't wish to send usage data to Microsoft, you can set the `telemetry.telemetryLevel` setting to `off`. Learn more in our [FAQ](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting).

# Feedback Collection

DocumentDB for VS Code proactively asks for user feedback and provides feedback entry points in the UI. Feedback collection is controlled by VS Code's global telemetry setting.

To disable feedback, set `telemetry.telemetryLevel` to a value other than `all` (e.g., `error` or `off`). Feedback is only active when the level is set to `all`.

# License

[MIT](LICENSE.md)
Loading