Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:
MongoDB
Importante
¿Desea migrar una aplicación de MongoDB existente o usar las características del lenguaje de consulta de MongoDB (MQL)? Considere la posibilidad de usar Azure DocumentDB.
¿Busca una solución de base de datos para escenarios a gran escala con un contrato de nivel de servicio (SLA) de disponibilidad de 99,999%, escalabilidad automática instantánea y conmutación automática por error en varias regiones? Considere la posibilidad de usar Azure Cosmos DB para NoSQL.
En este artículo se muestra cómo conectarse a Azure Cosmos DB para MongoDB mediante el paquete npm nativo de MongoDB. Una vez conectado, puede realizar operaciones en bases de datos, colecciones y documentos.
Note
Los fragmentos de código de ejemplo están disponibles en GitHub como un proyecto de JavaScript.
Documentación de referencia de API para MongoDB | paquete de MongoDB (npm)
Prerequisites
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Node.js LTS
- Interfaz de la línea de comandos (CLI) de Azure o Azure PowerShell
- Azure Cosmos DB para el recurso de MongoDB
Creación de una nueva aplicación de JavaScript
Cree una nueva aplicación de JavaScript en una carpeta vacía con su terminal preferido. Use el
npm initcomando para iniciar las indicaciones para crear elpackage.jsonarchivo. Aceptar los valores predeterminados de las indicaciones.npm initAgregue el paquete npm de MongoDB al proyecto de JavaScript. Use el
npm install packagecomando que especifica el nombre del paquete npm. El paquetedotenvse usa para leer las variables de entorno de un archivo.envdurante el desarrollo local.npm install mongodb dotenvPara ejecutar la aplicación, use un terminal para ir al directorio de la aplicación y ejecutarla.
node index.js
Conexión con el controlador nativo de MongoDB para Azure Cosmos DB para MongoDB
Para conectarse con el controlador nativo de MongoDB en Azure Cosmos DB, cree una instancia de la clase MongoClient. Esta clase es el punto inicial para realizar todas las operaciones en bases de datos.
El constructor más común para MongoClient tiene dos parámetros:
| Parámetro | Ejemplo de valor | Description |
|---|---|---|
url |
La variable de entorno COSMOS_CONNECTION_STRING |
API para la cadena de conexión de MongoDB que se debe usar en todas las solicitudes. |
options |
{ssl: true, tls: true, } |
Opciones de MongoDB para la conexión. |
Consulte la guía de solución de problemas en caso de problemas de conexión.
Obtención del nombre del recurso
Cree una variable de shell para resourceGroupName.
# Variable for resource group name resourceGroupName="msdocs-cosmos"Use el comando
az cosmosdb listpara recuperar el nombre de la primera cuenta de Azure Cosmos DB del grupo de recursos y almacenarlo en la variable de shell accountName.# Retrieve most recently created account name accountName=$( az cosmosdb list \ --resource-group $resourceGroupName \ --query "[0].name" \ --output tsv )
Recuperación de la cadena de conexión
Busque la cadena de conexión de la API de MongoDB en la lista de cadenas de conexión de la cuenta con el comando
az cosmosdb keys list.az cosmosdb keys list --type connection-strings \ --resource-group $resourceGroupName \ --name $accountNameAnote los valores de PRIMARY KEY. Necesitará estas credenciales más adelante.
Configuración de las variables de entorno
Para usar los valores de la CADENA DE CONEXIÓN en el código, establezca este valor en el entorno local que ejecuta la aplicación. Para establecer la variable de entorno, use el terminal preferido para ejecutar los siguientes comandos:
$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"
Creación de MongoClient con cadena de conexión
Agregue dependencias para hacer referencia a los paquetes npm de MongoDB y DotEnv.
// Use official mongodb driver to connect to the server import { MongoClient } from 'mongodb';Defina una nueva instancia de la clase
MongoClientmediante el constructor, y utilice la cadena de conexión conprocess.env..// New instance of MongoClient with connection string // for Cosmos DB const url = process.env.COSMOS_CONNECTION_STRING; const client = new MongoClient(url); // connect to the server await client.connect(); // client options const options = client.options; console.log( `Options:\n${Object.keys(options).map(key => `\t${key}: ${options[key]}\n`)}` );
Para obtener más información sobre las distintas formas de crear una MongoClient instancia, consulte Inicio rápido del controlador NodeJS de MongoDB.
Cierre de la conexión MongoClient
Cuando la aplicación haya terminado con la conexión, recuerde cerrarla. La .close() llamada debe ser después de que se realicen todas las llamadas de base de datos.
client.close()
Uso de clases de cliente de MongoDB con Azure Cosmos DB para la API de MongoDB
Antes de empezar a compilar la aplicación, consulte la jerarquía de recursos en Azure Cosmos DB. Azure Cosmos DB tiene un modelo de objetos específico que se usa para crear los recursos y acceder a ellos. Azure Cosmos DB crea recursos en una jerarquía que consta de cuentas, bases de datos, colecciones y documentos.
Diagrama jerárquico que muestra una cuenta de Azure Cosmos DB for MongoDB en la parte superior. La cuenta tiene dos nodos de base de datos secundarios. Uno de los nodos de base de datos incluye dos nodos de colección secundarios. El otro de los nodos de base de datos incluye un único nodo de colección secundario. Ese único nodo de colección tiene tres nodos de documento secundarios.
Cada tipo de recurso se representa mediante una o varias clases de JavaScript asociadas. Esta es una lista de las clases más comunes:
| Class | Description |
|---|---|
MongoClient |
Esta clase proporciona una representación lógica del cliente para la capa de API para MongoDB en Azure Cosmos DB. El objeto de cliente se usa para configurar y ejecutar solicitudes en el servicio. |
Db |
Esta clase es una referencia a una base de datos que podría existir o no en el servicio. La base de datos se valida en el lado servidor al intentar acceder a ella o realizar una operación en ella. |
Collection |
Esta clase es una referencia a una colección que podría no existir aún en el servicio. La colección se valida en el servidor al intentar utilizarla. |
En las siguientes guías se muestra cómo usar cada una de estas clases para crear tu aplicación.
Guía:
- Administración de bases de datos
- Administrar recopilaciones
- Administración de documentos
- Uso de consultas para buscar documentos
Consulte también
Pasos siguientes
Ahora que se ha conectado a una cuenta de API para MongoDB, use la siguiente guía para crear y administrar bases de datos.