# Mongo Search App

Aplicación Node.js sencilla para buscar documentos en MongoDB y devolver todos los resultados de la consulta.

## 🚀 Requisitos

- Node.js 16+ (recomendado)
- Una URI de MongoDB (MongoDB Atlas o servidor local)

## ✅ Instalación

### Opción A: Node.js (ya incluida en este repositorio)

1. Copia el ejemplo de `.env` y configura tu URI:

```bash
cp .env.example .env
# luego edita .env y pon tu MONGODB_URI
```

2. Instala dependencias:

```bash
npm install
```

### Opción B: Python (nuevo)

1. Crea/activa un entorno virtual (recomendado):

```bash
python -m venv .venv
source .venv/bin/activate
```

2. Instala dependencias:

```bash
pip install -r requirements.txt
```

3. Configura tus credenciales.

Puedes usar un archivo `.env` (recomendado):

```bash
cp .env.example .env
# luego edita .env y pon tu MONGODB_URI, MONGODB_DB y MONGODB_COLLECTION
```

O bien editar `config.py` directamente y asignar los valores:

- `MONGODB_URI`: URI de conexión a MongoDB.
- `MONGODB_DB` (opcional): nombre de la base de datos a usar.
- `MONGODB_COLLECTION` (opcional): colección por defecto para búsquedas.

## ▶️ Ejecución

### Node.js

```bash
npm start
```

Por defecto el servidor arranca en `http://localhost:3000`.

### Python

```bash
python app.py
```

Por defecto el servidor arranca en `http://localhost:5000`.

## 🔎 Uso

### Buscar documentos

Solicita el endpoint `/search` indicando la colección y opcionalmente un filtro JSON.

- Si configuraste `MONGODB_COLLECTION` en `config.py`, no necesitas pasar `collection` en la URL.

#### Ejemplo (Node.js)

```bash
curl "http://localhost:3000/search?collection=miColeccion&filter={\"activo\":true}"
```

#### Ejemplo (Python)

```bash
curl "http://localhost:5000/search?collection=miColeccion&filter={\"activo\":true}"
```

- `collection` (requerido a menos que hayas configurado `MONGODB_COLLECTION`): nombre de la colección a consultar.
- `filter` (opcional): JSON válido que represente el filtro de búsqueda.
- `limit` (opcional): número máximo de documentos a devolver (máximo 1000).

> Si no pasas `filter`, devolverá todos los documentos en la colección.

## 📌 Nota

Para usar tu URI puedes también exportar la variable en el shell:

```bash
export MONGODB_URI="mongodb+srv://..."
npm start
```
