> For the complete documentation index, see [llms.txt](https://docs.skyone.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skyone.cloud/espanol/skyone-studio/modulos/configuraciones-and-operaciones/operaciones-de-modulos/operaciones-mongodb.md).

# Operaciones MongoDB

A continuación, se presentan los métodos posibles en las operaciones de MongoDB:

### Método de Base de Datos (Db)

* `collection(name)`: Selecciona una colección específica.

### Métodos de Coleção (Collection)

Estos son los métodos de CRUD (*Create, Read, Update, Delete*) ejecutados en una colección específica

#### **Creación (Create)**

* `insertOne(doc)`: Inserta un único documento en la colección.
* `insertMany([docs])`: Inserta múltiples documentos de una sola vez.

#### **Lectura (Read)**

* `find(query)`: Busca múltiples documentos. Retorna un cursor que se puede transformar en un arreglo usando `.toArray()`.
* `findOne(query)`: Busca y retorna solo el primer documento que cumpla con el filtro.
* `countDocuments(query)`: Cuenta cuántos documentos cumplen con los criterios de búsqueda
* `distinct(field, query)`: Retorna una lista de valores únicos para un campo específico.

#### **Actualización (Update)**

* `updateOne(filter, update)`: Actualiza el primer documento encontrado por el filtro.
* `updateMany(filter, update)`: Actualiza todos los documentos que coinciden con el filtro.
* `replaceOne(filter, replacement)`: Reemplaza un documento completo por uno nuevo, manteniendo solo el `_id`.
* `findOneAndUpdate(filter, update)`: Busca un documento, aplica la actualización y retorna el original (o el actualizado, según las opciones).

#### **Eliminación (Delete)**

* `deleteOne(filter)`: Elimina el primer documento que coincide con el filtro.
* `deleteMany(filter)`: Elimina todos los documentos que coinciden con el filtro.

### Métodos de Agregación y Rendimiento

* `aggregate(pipeline)`: Ejecuta un *pipeline* de *Aggregation Framework* para transformaciones de datos complejas.
* `createIndex(keys, options)`: Crea un índice en la colección para mejorar el rendimiento de las búsquedas.
* `drop()`: Elimina la colección completa de la base de datos.

### Cómo referenciar la Collection (2 tipos)

1. **Acceso Directo vía Propiedad (Dot Notation)**: Se utiliza cuando el nombre de la colección no tiene caracteres especiales o espacios. Ejemplo: `db.users`.
2. **Método `collection()` con String**: Es la forma más segura y recomendada en la documentación del *driver* de MongoDB para Node.js. Permite usar comillas simples o dobles y acepta nombres con espacios o caracteres especiales. Ejemplo: `db.collection('users')`.

#### Operaciones comunes justo después de referenciar la colección

Una vez que hayas referenciado la colección utilizando uno de los métodos anteriores, generalmente encadenas los métodos de búsqueda o manipulación:

* `db.collection('users').find({})`
* `db.users.insertOne({ name: "Dev" })`


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.skyone.cloud/espanol/skyone-studio/modulos/configuraciones-and-operaciones/operaciones-de-modulos/operaciones-mongodb.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
