# How to Check Which MongoDB Version Is Currently Active Using m

> Quickly check your active MongoDB version with the aheckmann m version manager. Learn how m inspects your installation and identifies the specific MongoDB version and edition.

- Repository: [Aaron Heckmann/m](https://github.com/aheckmann/m)
- Tags: how-to-guide
- Published: 2026-02-23

---

**The `m` version manager determines the active MongoDB installation by executing `mongod --version` from the symlinked `$M_BIN_DIR` directory and parsing the output to extract the version string, including Enterprise edition detection.**

The `m` tool by [aheckmann/m](https://github.com/aheckmann/m) is a lightweight MongoDB version manager that simplifies switching between server releases. When you activate a specific MongoDB version, `m` creates symbolic links in a dedicated binary directory, enabling quick identification of which build is currently in use. Understanding how to check which MongoDB version is currently active using `m` ensures you're running the expected server in your development or production environments.

## How m Detects the Active MongoDB Version

At the core of version detection is the **symlinked binary directory** referenced by the `$M_BIN_DIR` environment variable. When you activate a version, `m` populates this directory with symbolic links pointing to the selected release's `bin` folder (excluding a few tool binaries).

The `check_current_version` function defined in `bin/m` (lines 40-48) performs the actual runtime detection:

```bash
check_current_version() {
    which $M_BIN_DIR/mongod &> /dev/null
    if test $? -eq 0; then
        active=`$M_BIN_DIR/mongod --version | grep "version\s*v[0-9]" \
              | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+([-_\.][a-zA-Z0-9]+)?' | head -1
        ent=`$M_BIN_DIR/mongod --version | grep -E '(modules\"?:|\"?enterprise\"?)' \
              | grep -v -E 'modules"?:[[:space:]]*\[.*' | grep -v -E 'modules"?:[[:space:]]*none'`
        if [[ $ent == *1 ]]; then active="$active-ent"; fi
    fi
}

```

This function runs `$M_BIN_DIR/mongod --version` and uses grep patterns to extract the semantic version number. It also detects **Enterprise builds** by checking the output for enterprise modules or specific module declarations, appending `-ent` to the version string when applicable.

## Commands to Check the Active MongoDB Version

### List Installed Versions with the Active Indicator

Running `m` without arguments invokes `display_versions`, which internally calls `check_current_version` before printing. According to the aheckmann/m source code, the active version appears with a **✔︎** marker:

```bash
$ m
  5.0.15
  6.0.5
✔ 7.0.12

```

### Display the Binary Path of the Active Version

The `m bin` command utilizes `display_bin_path_for_version` to print the absolute path to the currently active version's `bin` directory. This resolves the symlinks in `$M_BIN_DIR` to their actual installation location:

```bash
$ m bin
/home/youruser/.local/m/versions/7.0.12/bin

```

### Query Specific Version Paths

To verify the installation path of a specific release without activating it, use `m bin <version>` or `m which <version>`. This returns the path to the latest installed version matching the provided identifier:

```bash
$ m bin 6.0.5
/home/youruser/.local/m/versions/6.0.5/bin

```

## Practical Usage Examples

Here are common workflows for verifying your MongoDB environment using the `m` CLI:

```bash

# Check which version is active (marked with ✔︎)

$ m

# Get the absolute path to the active version's binaries

$ m bin

# Verify the path for a specific installed version

$ m which 5.0.15

# Start the currently active mongod directly

$ m use

```

## Summary

- **Symbolic link inspection**: `m` identifies the active version by examining symlinks in the `$M_BIN_DIR` directory that point to the selected release.
- **Version parsing**: The `check_current_version` function in `bin/m` executes `mongod --version` and extracts the version using regex pattern matching.
- **Enterprise detection**: The tool automatically appends `-ent` to the version string when it detects Enterprise modules in the binary output.
- **User commands**: Use `m` to list versions with indicators, `m bin` to show the active path, and `m bin <version>` to query specific installations.

## Frequently Asked Questions

### How does m determine which MongoDB version is active?

The tool checks the `$M_BIN_DIR` environment variable for existing symlinked binaries and executes `mongod --version` from that location. The `check_current_version` function parses the command output to extract the semantic version number and detect if it's an Enterprise build.

### What is $M_BIN_DIR in the m version manager?

`$M_BIN_DIR` is the directory where `m` creates symbolic links to the currently activated MongoDB version's binaries. This directory typically resides at `~/.local/m/bin` and contains symlinks to `mongod`, `mongo`, and other server tools that resolve to the active version's installation path.

### Can m detect if I'm running MongoDB Enterprise Edition?

Yes. The `check_current_version` function specifically searches the `mongod --version` output for enterprise modules or the "enterprise" string. When detected, it appends `-ent` to the version identifier shown in the listing output.

### How do I switch to a different MongoDB version using m?

Run `m use <version>` to activate a specific release. This command updates the symlinks in `$M_BIN_DIR` to point to the requested version's installation directory, immediately making it the new active version for all subsequent MongoDB operations.