Repository: voxel51/fiftyone

Issue:
[INSTALL] fiftyone.core.config.FiftyOneConfigError: MongoDB could not be installed on your system. Please define a `database_uri` in your `fiftyone.core.config.FiftyOneConfig` to connect to yourown MongoDB instance or cluster
Hello, I'm having an error when running `fifty-one quickstart` on CLI.

Having the same error in: https://github.com/voxel51/fiftyone/issues/4216

Error: 
```bash
fiftyone.core.config.FiftyOneConfigError: MongoDB could not be installed on your system. Please define a `database_uri` in your `fiftyone.core.config.FiftyOneConfig` to connect to yourown MongoDB instance or cluster
```

My os: Linux-3.10.0-514.6.1.el7.x86_64-x86_64-with-glibc2.17
Python: 3.10.8
fiftyone: 0.23.8
fiftyone-db: 1.1.2

```bash
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
```

How can I make "fiftyone" work in such an environment?
[BUG] fiftyone-db cannot be installed anymore with poetry and pip 24
### Describe the problem

Realted issue on pypa : https://github.com/pypa/pip/issues/12550

### Code to reproduce issue

```console
pip wheel --no-cache-dir --use-pep517 fiftyone-db
```

will fail on linux and pip version 24.

This is most likely related with the fact that no pre-built wheel exists for linux. pip will then pull the source and try to build it itself. However, pip's default build creates a virtual environment solely for the build, which no longer includes `wheel` since version 24, while `fiftyone-db`'s setpu.py does import it. See related PR that was included in version 24 : https://github.com/pypa/pip/pull/12449

I asked pip devs how to solve the issue, but a working (albeit not necessarily the cleanest) solution is to add a small `pyroject.toml` file at the root of the `db` folder with the following info :

```toml
[build-system]
# Minimum requirements for the build system to execute.
requires = ["setuptools", "wheel"]  # PEP 508 specifications.
```

Unless something better is suggested, I can make a PR to add it

### System information

-   **OS Platform and Distribution**: ubuntu 22.04
-   **Python version** (`python --version`): 3.11
-   **FiftyOne version** (`fiftyone --version`): N/A
-   **FiftyOne installed from** (pip or source): pip


### Willingness to contribute

The FiftyOne Community encourages bug fix contributions. Would you or another
member of your organization be willing to contribute a fix for this bug to the
FiftyOne codebase?

-   [X] Yes. I can contribute a fix for this bug independently
-   [ ] Yes. I would be willing to contribute a fix for this bug with guidance
        from the FiftyOne community
-   [ ] No. I cannot contribute a bug fix at this time



Discussion:

Resolving patch:
diff --git a/package/db/setup.py b/package/db/setup.py
--- a/package/db/setup.py
+++ b/package/db/setup.py
@@ -37,6 +37,19 @@
             "x86_64": "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon2023-7.0.2.tgz",
         },
     },
+    "centos": {
+        "7": {
+            "x86_64": "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.4.tgz",
+        },
+        "8": {
+            "aarch64": "https://fastdl.mongodb.org/linux/mongodb-linux-aarch64-rhel82-5.0.22.tgz",
+            "x86_64": "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-5.0.4.tgz",
+        },
+        "9": {
+            "aarch64": "https://fastdl.mongodb.org/linux/mongodb-linux-aarch64-rhel90-7.0.2.tgz",
+            "x86_64": "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel90-7.0.2.tgz",
+        },
+    },
     "debian": {
         "9": {
             "x86_64": "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian92-5.0.22.tgz",
@@ -87,7 +100,8 @@
 
 WINDOWS = "Windows"
 WINDOWS_DOWNLOADS = {
-    "x86_64": "https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-5.0.4.zip"
+    "x86_64": "https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-5.0.4.zip",
+    "amd64": "https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-5.0.4.zip",
 }
 
 
@@ -113,7 +127,7 @@ def _get_download():
             return DARWIN_DOWNLOADS[MACHINE]
 
         if SYSTEM == WINDOWS:
-            return WINDOWS_DOWNLOADS[MACHINE]
+            return WINDOWS_DOWNLOADS[MACHINE.lower()]
 
         if SYSTEM == LINUX:
             return _get_linux_download()
@@ -125,7 +139,7 @@ def _get_download():
 MONGODB_BINARIES = ["mongod"]
 
 
-VERSION = "1.1.1"
+VERSION = "1.1.3"
 
 
 def get_version():


Test patch: