# 3.13.22. Implémentation de l’éxécution des requêtes mono-query DSL

## 3.13.22.1. Implémentation des query builder

Pour construire dynamiquement une requête mono-query, on peut utiliser les builders proposés ci-dessous :

> Insert : [filter, data]

> - Il élabore la requête d’insertion. Il contient le filtre et les données à insérer

> Select : [query, filter, projection]

> - Il élabore la requête de recherche. Contient le query, le filtre et la projection

> Update : [query, filter, actions]

> - Il élabore la requête de mise à jour. Contient le query, le filtre et les actions

> Delete : [query, filter]

> - Il élabore la requête de suppression. Contient le query, le filtre

    Select selectQuery = new Select(requestInJson)
    ou
    Select selectQuery = new Select().setQuery(query).setfilter(filter).setData(data);

    Update updateQuery = new Update(requestInJson)
    ou
    Update updateQuery = new Update().setQuery(query).setfilter(filter).addActions(data);

    Insert insertQuery = new Insert(requestInJson)

ou

    Insert insertQuery = new Insert().setData(data).setfilter(filter);

    Delete deleteQuery = new Delete(requestInJson)
    ou
    Delete deleteQuery = new Delete().setQuery(query).setfilter(filter);

## 3.13.22.2. Implémentation de DbRequestSingle

DbRequestSingle est une classe pour éxécuter les requêtes DSL mono-query.

Pour l’initialiser, il faut utiliser le constructeur avec une collection de Vitam.

Le résultat de l’éxécution est un objet DbRequestResult qui contient les informations suivantes:

- boolean wasAcknowledged : l’information reconnue pour la suppression et la mise à jour
- long count: le nombre d’éléments insérés, trouvés, supprimés ou mis à jour
- Map<String, List<String>> diffs : la différence entre ancien et nouvelle valeur de l’action mise à jour
- MongoCursor<VitamDocument<?>> cursor : le cursor mongo de l’opération de recherche

    DbRequestSingle dbrequest = new DbRequestSingle(collection.getVitamCollection());
    Insert insertquery = new Insert();
    insertquery.setData(arrayNode);
    DbRequestResult result = dbrequest.execute(insertquery);

L’implémentation du sort est disponible sur les requêtes MongoDB et ElasticSearch.