API de Datos de MongoDB

La API de Datos de MongoDB es una interfaz que permite interactuar con una base de datos MongoDB en la nube utilizando solicitudes HTTP. A continuación, te proporcionaré una descripción general de cómo utilizar la API de Datos de MongoDB para realizar operaciones CRUD (Create, Read, Update, Delete) en tu base de datos.


Configuración del Clúster

Para utilizar la API de Datos de MongoDB, debes configurar y utilizar un clúster en la nube de MongoDB. Asegúrate de tener un clúster de MongoDB activo y accesible a través de la API de Datos.


Nivel de Acceso

La API de Datos de MongoDB utiliza un nivel de acceso para autenticar y autorizar las solicitudes. Puedes configurar el nivel de acceso y crear una clave API de Datos para autenticar tus solicitudes. Asegúrate de tener las credenciales necesarias para acceder a tu clúster.


Clave API de Datos

Una clave API de Datos es necesaria para autenticar tus solicitudes a la API de Datos de MongoDB. Puedes obtener esta clave desde la interfaz de administración de MongoDB.


Envío de una Solicitud de API de Datos

Las solicitudes a la API de Datos de MongoDB se realizan utilizando HTTP, generalmente con los métodos HTTP como GET, POST, PUT y DELETE. Debes incluir tu clave API de Datos en la cabecera de autorización de la solicitud.

Aquí hay ejemplos de cómo se configura la cabecera de autorización en una solicitud HTTP utilizando Node.js y la biblioteca axios:

const axios = require('axios');
const apiKey = 'TuClaveAPIDeDatos';

const config = {
  headers: {
    Authorization: `Bearer ${apiKey}`,
  },
};

// Utiliza 'config' en tus solicitudes HTTP para autenticarte.

Puntos Finales de API de Datos

La API de Datos de MongoDB ofrece varios puntos finales para realizar diferentes operaciones CRUD. A continuación, se detallan los puntos finales más comunes y sus cuerpos de solicitud.


Buscar un Solo Documento

  • Endpoint: GET /v2/databases/{databaseName}/collections/{collectionName}/documents/{documentId}
  • Cuerpo de Solicitud: No se necesita un cuerpo de solicitud para esta operación.
GET https://data.api.mongodb.com/v2/mi_base_de_datos/mi_coleccion/findOne

Buscar Varios Documentos

  • Endpoint: GET /v2/databases/{databaseName}/collections/{collectionName}/documents
  • Cuerpo de Solicitud: Puedes proporcionar un cuerpo de solicitud para filtrar documentos, por ejemplo:
POST https://data.api.mongodb.com/v2/mi_base_de_datos/mi_coleccion/find
Content-Type: application/json

{
  "filter": {},
  "projection": {
    "_id": 1,
    "nombre": 1
  }
}

Insertar un Solo Documento

  • Endpoint: POST /v2/databases/{databaseName}/collections/{collectionName}/documents
  • Cuerpo de Solicitud: Debes proporcionar el documento que deseas insertar en el cuerpo de la solicitud.
POST https://data.api.mongodb.com/v2/mi_base_de_datos/mi_coleccion/insertOne
Content-Type: application/json

{
  "documento": {
    "nombre": "Ejemplo",
    "edad": 30
  }
}

Insertar Varios Documentos

  • Endpoint: POST /v2/databases/{databaseName}/collections/{collectionName}/documents
  • Cuerpo de Solicitud: Debes proporcionar una matriz de documentos que deseas insertar en el cuerpo de la solicitud.
POST https://data.api.mongodb.com/v2/mi_base_de_datos/mi_coleccion/insertMany
Content-Type: application/json

{
  "documentos": [
    {
      "nombre": "Ejemplo1",
      "edad": 25
    },
    {
      "nombre": "Ejemplo2",
      "edad": 35
    }
  ]
}

Actualizar un Solo Documento

  • Endpoint: PUT /v2/databases/{databaseName}/collections/{collectionName}/documents/{documentId}
  • Cuerpo de Solicitud: Debes proporcionar el documento actualizado en el cuerpo de la solicitud.
PUT /api/documentos/123
{
  "nuevosDatos": {
    "campo1": "Nuevo valor",
    "campo2": 42
  }
}

Actualizar Varios Documentos

  • Endpoint: PUT /v2/databases/{databaseName}/collections/{collectionName}/documents
  • Cuerpo de Solicitud: Debes proporcionar un filtro y un documento de actualización en el cuerpo de la solicitud.
PUT /api/documentos
{
  "filtro": {
    "campo3": "Valor de filtro"
  },
  "nuevosDatos": {
    "campo1": "Nuevo valor",
    "campo2": 42
  }
}

Eliminar un Solo Documento

  • Endpoint: DELETE /v2/databases/{databaseName}/collections/{collectionName}/documents/{documentId}
  • Cuerpo de Solicitud: No se necesita un cuerpo de solicitud para esta operación.
DELETE /api/documentos/123

Eliminar Varios Documentos

  • Endpoint: DELETE /v2/databases/{databaseName}/collections/{collectionName}/documents
  • Cuerpo de Solicitud: Debes proporcionar un filtro en el cuerpo de la solicitud para especificar qué documentos eliminar.
DELETE /api/documentos
{
  "filtro": {
    "campo4": "Valor de filtro"
  }
}

Documentos Agregados

  • Endpoint: POST /v2/databases/{databaseName}/collections/{collectionName}/aggregate
  • Cuerpo de Solicitud: Debes proporcionar una canalización de agregación en el cuerpo de la solicitud para realizar operaciones de agregación en la colección.

Ten en cuenta que estos ejemplos son genéricos, y debes reemplazar {databaseName}, {collectionName}, y {documentId} con los nombres y valores reales de tu base de datos, colección y documento.

La API de Datos de MongoDB es una herramienta poderosa que te permite interactuar con tus datos de MongoDB en la nube a través de HTTP, lo que facilita la integración con aplicaciones y servicios externos. Asegúrate de consultar la documentación de la API de Datos de MongoDB para obtener detalles específicos sobre cómo utilizarla con tu clúster.