

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Connect à une source de données MongoDB
<a name="AMG-mongodb-datasource"></a>

 La source de données MongoDB vous permet de visualiser les données de MongoDB dans Amazon Managed Grafana. 

**Note**  
Cette source de données est réservée à Grafana Enterprise. Pour de plus amples informations, veuillez consulter [Gérer l'accès aux plug-ins d'entreprise](upgrade-to-enterprise-plugins.md).  
En outre, dans les espaces de travail qui prennent en charge la version 9 ou une version plus récente, cette source de données peut nécessiter l'installation du plug-in approprié. Pour de plus amples informations, veuillez consulter [Étendez votre espace de travail avec des plugins](grafana-plugins.md).

## Usage
<a name="mongo-usage"></a>

### Éditeur de requêtes
<a name="mongo-query-editor"></a>

 L'éditeur de requêtes prend en charge la même syntaxe que le MongoDB Shell, avec certaines limitations :\* Vous ne pouvez en exécuter qu'un. command/query \* Seules les commandes de lecture sont prises en charge : **find** et **aggregate** \* *La plupart des* constructeurs d'objets ne sont pas pris en charge (à l'exception de **IsoDate**, qui est pris en charge) 

 L'éditeur développe la syntaxe MongoDB Shell de la manière suivante : 
+  **Sélection de la base** de données — Vous pouvez fournir le nom de la base de données à la place du « db » normal : 
**Note**  
Vous pouvez toujours utiliser « db ». Il fera référence à la base de données par défaut dans votre chaîne de connexion.

  ```
  sample_mflix.movies.find()
  ```
+  **Tri agrégé** — Normalement, le tri s'effectue par une étape dans le pipeline d'agrégation, mais le niveau gratuit de MongoDB Atlas ne permet pas le tri. Nous avons étendu la syntaxe pour l'autoriser à ceux qui utilisent le niveau gratuit. 
**Note**  
MongoDB n'effectue pas le tri avec cette syntaxe. Le tri s'effectue une fois que les résultats ont été demandés dans la collection.

  ```
  sample_mflix.movies.aggregate({}).sort({"time": 1})
  ```
+  Avec un éditeur vide, **Ctrl \+ Space affichera** une sélection de toutes les bases de données disponibles. 
+  La saisie d'un point après la base de données affichera une sélection de toutes les collections disponibles pour cette base de données. 
+  La saisie d'un point après la collection affichera les méthodes de requête disponibles. 
+  La saisie d'un point après la méthode de requête affichera des fonctions supplémentaires : sort/limit. 

#### Exécution de la requête
<a name="mongo-running-the-query"></a>

 Appuyez sur **Cmd \+ S** pour exécuter la requête 

### Séries chronologiques
<a name="mongo-time-series"></a>

 Lors de la visualisation de données de séries chronologiques, le plugin doit savoir quel champ utiliser comme heure. Projetez simplement le champ avec un alias de nom « time ». Le type de données du champ doit être une date. 

 Vous pouvez forcer les types de données non datés à ce jour. Cela permettra d'utiliser des champs autres que la date comme heure de la série chronologique. L'exemple suivant montre comment convertir le champ int « année » en une date projetée sous forme d' « heure » à l'aide de l'opérateur de pipeline $date FromParts de MongoDB. 

```
sample_mflix.movies.aggregate([
{"$match": { "year": {"$gt" : 2000} }},
{"$group": { "_id": "$year", "count": { "$sum": 1 }}},
{"$project": { "_id": 0, "count": 1, "time": { "$dateFromParts": {"year": "$_id", "month": 2}}}}
]
).sort({"time": 1})
```

### Diagnostic
<a name="mongo-diagnostics"></a>

 [Commandes de diagnostic](https://docs.mongodb.com/manual/reference/command/nav-diagnostic/) 

 Les commandes de diagnostic suivantes sont actuellement prises en charge : « stats », « ServerStatus », « repl », « GetLog », SetGetStatus « conn », « ConnectionStatus »PoolStats, « BuildInfo », « DBStats », « HostInfo », « LockInfo » 

 Exemples : 

```
admin.connectionStatus()  // run the connectionStatus command
admin.connectionStatus({"authInfo.authenticatedUserRoles": 1})  // run and only return the "authInfo.authenticatedUserRoles" field
admin.connPoolStats({arg: "pool"})  // run the connPoolStats command and pass 1 argument
admin.serverStatus({args: {repl: 0, metrics:0}})  // run the serverStatus command and pass multiple args
```

### Macros
<a name="mongo-macros"></a>

 Vous pouvez faire référence à la plage horaire du tableau de bord dans vos requêtes.
+ ` $__timeFrom `— une macro qui référence l'heure de début du tableau de bord
+ ` $__timeTo `— une macro qui référence l'heure de fin du tableau de bord

```
          $__timeTo -  ``` sample_mflix.movies.find({released: {$gt:
          "$__timeFrom"}}).sort({year: 1})
```

#### Variables du modèle
<a name="mongo-variables"></a>

MongoDB soutient l'idée des « variables composées », qui vous permettent d'utiliser une variable sous forme de variables multiples pour effectuer des filtres multiclés complexes.

Pour créer une variable composée, utilisez la convention de dénomination qui consiste à diviser les variables en utilisant des traits de soulignement (doivent commencer par un trait de soulignement) : `_var1_var2` lors de la requête, la réponse doit être au format suivant : `val1-val2`

**Exemple : je souhaite filtrer les résultats en fonction du nom du film et de l'année.**

1. Créez une variable de type Query : `_movie_year`

1. Définissez la variable query sur une requête qui renverra un tableau d'éléments avec une propriété ciné-année, comme indiqué dans l'exemple suivant.

   ```
   // Example sample_mflix.movies.aggregate([
             {"$match": {year: {"$gt": 2011}}},
             {"$project": {_id: 0, movie_year: {"$concat":
             ["$title", " - ", {"$toString":"$year"}]}}}
             ])
   ```

   ```
    // [{"movie-year": "Ted - 2016"},
             {"movie-year": "The Terminator -
             1985"}]
   ```

1. Dans votre requête, vous pouvez désormais référencer « Movie » et « Year » en tant que variables de modèle distinctes en utilisant la syntaxe « $\_variable ». 

##### Utilisation de filtres ad hoc
<a name="mongo-adhoc"></a>

En plus de la variable standard de type « filtre ad hoc », quel que soit son nom, une deuxième variable auxiliaire doit être créée. Il doit s'agir d'un type « constant » avec le nom « mongodb\_adhoc\_query` et une valeur compatible avec l'éditeur de requêtes. Le résultat de la requête sera utilisé pour renseigner les filtres sélectionnables. Vous pouvez choisir de masquer cette variable car elle ne sert à rien d'autre.

```
          sample_mflix.movies.aggregate([
          {"$group": { "_id": "$year"}},
          {"$project": { "year": "$_id","_id":
          0 }} ] )
```