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.