Class: EntityQuery

EntityQuery(entityDefinition)

Requête sur une entity, les méthodes sont chaînables,
sauf celles qui renvoient des résultats à une callback
(grab, grabOne, count, countBy, purge)

Constructor

new EntityQuery(entityDefinition)

Construction d'une requête sur entité.
Ce constructeur ne doit jamais être appelé directement,
utilisez EntityDefinition#match

Parameters:
Name Type Description
entityDefinition EntityDefinition

La définition de l'entité

Source:

Members

(static) HARD_LIMIT_GRAB :number

Limite max qui sera imposée à grab

Type:
  • number
Source:

entity :EntityDefinition

La définition de l'entité

Type:
Source:

Methods

between(from, to) → {EntityQuery}

Fait correspondre les enregistrement dont la valeur d'index est comprise
entre deux valeurs.

Parameters:
Name Type Description
from String | Integer | Date

La valeur de la borne inférieure

to String | Integer | Date

La valeur de la borne supérieure

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

count(callback) → {undefined}

Compte le nombre d'objets que la requête courante remonterait (non chaînable)

Parameters:
Name Type Description
callback EntityQuery~CountCallback
Source:
Returns:
Type
undefined

countBy(index, callback)

Compte le nombre d'objet correpondants et les regroupes par index.

Parameters:
Name Type Description
index String

L'index dont on veut le nb d'entities pour chaque valeur qu'il prend

callback EntityQuery~CountByCallback
Source:

deletedAfter(when) → {EntityQuery}

Remonte les entités softDeleted après when

Parameters:
Name Type Description
when Date
Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

deletedBefore(when) → {EntityQuery}

Remonte les entités softDeleted avant when (<=)

Parameters:
Name Type Description
when Date
Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

equals(value) → {EntityQuery}

Limite les enregistrements dont la valeur (de l'index imposé précédemment) est égale à une
valeur donnée.

Parameters:
Name Type Description
value String | Integer | Date

La valeur cherchée

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

false() → {EntityQuery}

raccourci pour .equals(false)

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

forEachEntity(onEachEntity, done, optionsopt)

Applique un traitement (onEachEntity) sur chaque entité correspondant à la EntityQuery en cours
Si une occurence lève une erreur, l'ensemble de la boucle est arrétée.

Parameters:
Name Type Attributes Description
onEachEntity EntityQuery~ForEachEntityOnEachEntityCallback

appelée avec (entity, next), next devra être rappelé après traitement avec une erreur éventuelle

done EntityQuery~ForEachEntityDoneCallback

appelée à la fin avec (error, nbProcessedOk)

options object <optional>
Properties
Name Type Attributes Description
limit number <optional>

Le max du nb d'entity à traiter

progressBar boolean <optional>

Passer true pour afficher la progression en console (donc si l'on a un tty, i.e. en cli sans redirection de stdout)

continueOnError boolean <optional>

Passer true pour continuer en cas d'erreur (qui sera alors affichée dans console.error avec l'oid concerné)

Source:

getIndex(indexName)

Racourci vers Entity#getIndex

Parameters:
Name Type Description
indexName String
Source:

grab(optionsopt, callback)

Récupère des entités

Parameters:
Name Type Attributes Description
options number | object <optional>

Si seulement un nombre est fourni, il sera traité comme options.limit

Properties
Name Type Description
limit number

Entier >0 et < 1000

skip number

Entier >0, pour démarrer avec un offset

callback EntityQuery~GrabCallback

rappelée avec l'erreur ou les résultats

Source:

grabOne(callback)

Renvoie un objet liés à la requête

Parameters:
Name Type Description
callback EntityQuery~GrabOneCallback

La callback.

Source:

greaterThan(value) → {EntityQuery}

Limite les enregistrements dont la valeur (de l'index imposé précédemment) est supérieure à une
valeur donnée.

Parameters:
Name Type Description
value String | Integer | Date

La valeur à faire correspondre.

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

greaterThanOrEquals(value) → {EntityQuery}

Fait correspondre les enregistrement dont la valeur d'index est supérieure ou
égale à une valeur donnée.

Parameters:
Name Type Description
value String | Integer | Date

La valeur à faire correspondre.

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

in(value) → {EntityQuery}

Fait correspondre les enregistrement dont la valeur d'index est dans une liste

Parameters:
Name Type Description
value Array.<String> | Array.<Integer> | Array.<Date>

Les valeurs à faire correspondre.

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

includeDeleted() → {EntityQuery}

Remonte toutes les entités, softdeleted ou non

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

isEmpty() → {EntityQuery}

Filtre sur un index multiple ne contenant aucune valeur (fait du $eq: [])
(car isNull sur un index multiple remonte les entites ayant une valeur null ou undefined dans le tableau d'origine)

Source:
Returns:
Type
EntityQuery

isNotNull() → {EntityQuery}

Limite aux entities ayant l'index précédent non null
(ATTENTION, sur un index multiple ce n'est pas le complément de isNull : la même entity
remonte dans les deux cas si la valeur est un array avec un élément null|undefined
et un autre élément non null|undefined)

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

isNull() → {EntityQuery}

Limite aux entities ayant l'index précédent null (ou undefined)
Attention, pour les index multiple ça remonte les entity dont l'array contient au moins un null|undefined
Pour remonter les entities ayant une valeur [] il faut utiliser isEmpty, ou alors utiliser une callback
d'index qui retourne null si le tableau est vide

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

like(value) → {EntityQuery}

Limite les enregistrements dont la valeur (de l'index imposé précédemment) ressemble à une
valeur donnée (Cf signification du _ et % avec like).

Parameters:
Name Type Description
value String | Integer | Date

La valeur cherchée

Source:
See:
Returns:

La requête (pour chaînage)

Type
EntityQuery

lowerThan(value) → {EntityQuery}

Fait correspondre les enregistrement dont la valeur d'index est inférieure à une
valeur donnée.

Parameters:
Name Type Description
value String | Integer | Date

La valeur à faire correspondre.

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

lowerThanOrEquals(value) → {EntityQuery}

Fait correspondre les enregistrement dont la valeur d'index est inférieure ou
égale à une valeur donnée.

Parameters:
Name Type Description
value String | Integer | Date

La valeur à faire correspondre.

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

match(indexName) → {EntityQuery}

Ajoute un critère à la requête.

Si cette directive est utilisée seule, cela permet de faire correspondre les
objets qui disposent de cet index quel que soit sa valeur. Sinon cette
directive est généralement suivi d'une condition comme in,
greaterThan, etc.

examples

Sélection des personnes qui ont un index "job"

lassi.entity.Person.match('job');

Sélection des personnes de plus de 30 ans :

lassi.entity.Person.match('age').greaterThan(30);
Parameters:
Name Type Description
indexName String

L'index tel que déclaré via Entity#addIndex ou
oid pour l'identifiant de l'objet.

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

notEquals(value) → {EntityQuery}

Limite les enregistrements dont la valeur (de l'index imposé précédemment) est différente à une
valeur donnée.

Parameters:
Name Type Description
value String | Integer | Date

La valeur cherchée

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

notIn(value) → {EntityQuery}

Remonte les enregistrement dont les valeurs d'index ne sont pas dans la liste

Parameters:
Name Type Description
value Array.<String> | Array.<Integer> | Array.<Date>

Les valeurs à exclure

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

onlyDeleted() → {EntityQuery}

Remonte uniquement les entités softDeleted (inutile avec deletedAfter ou deletedBefore)

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

purge(callback)

Efface toutes les entités de la collection (qui matchent la requête si y'en a une qui précède)

Parameters:
Name Type Description
callback purgeCallback
Source:

setDebug(statusopt) → {EntityQuery}

Ajoute (ou enlève) le mode debug qui log les params de la requête
(qui peuvent être passé tels quels dans un mongo-shell)

Parameters:
Name Type Attributes Default Description
status boolean <optional>
true
Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

softPurge(callback)

Efface toutes les entités de la collection (qui matchent la requête si y'en a une qui précède)

Parameters:
Name Type Description
callback softPurgeCallback
Source:

sort(indexName, orderopt) → {EntityQuery}

Tri le résultat de la requête.

Parameters:
Name Type Attributes Default Description
indexName String

L'index sur lequel trier

order String <optional>
asc

Comme en SQL, asc ou desc.

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

textSearch(search) → {EntityQuery}

Ajoute un critère de recherche plain text

Parameters:
Name Type Description
search
Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

true() → {EntityQuery}

raccourci pour .equals(true)

Source:
Returns:

La requête (pour chaînage)

Type
EntityQuery

Type Definitions

CountByCallback(error, result)

Callback de countBy

Parameters:
Name Type Description
error Error

Une erreur est survenue (l'index n'existait pas)

result object

le nb de résultats par valeur de l'index

Source:

CountCallback(error, count)

Callback de count

Parameters:
Name Type Description
error Error

Une erreur est survenue.

count Integer

le nb de résultat

Source:

ForEachEntityDoneCallback(error, count)

Callback final d'une requête forEachEntity, appelé quand tous les résultats ont été traités

Parameters:
Name Type Description
error Error

Une erreur est survenue.

count number

Nombre total d'entités traitées

Source:

ForEachEntityOnEachEntityCallback(entity, next)

Callback d'exécution d'une requête forEachEntity, appelé sur chaque résultat de la requête

Parameters:
Name Type Description
entity Entity

Un des résultats de la requête

next function

Callback a appeler quand ce résultat est traité

Source:

GrabCallback(error, entities)

Callback d'exécution d'une requête grab

Parameters:
Name Type Description
error Error
entities Array

La liste des entités remontées

Source:

GrabOneCallback(error, entites)

Callback d'exécution d'une requête grabOne

Parameters:
Name Type Description
error Error

Une erreur est survenue.

entites Entity

L'objet trouvé (ou null)

Source:

query

Objet qui sera passé en 1er argument des commandes find|count de mongo
Chaque propriété est un chemin dans le document, sa valeur le filtre à y appliquer

Source:

record

Objet qui contient toutes les infos à passer à mongo pour exécuter la requête

Properties:
Name Type Description
query EntityQuery~query
limit number

toujours fourni, HARD_LIMIT_GRAB par défaut

options object

sera passé tel quel à mongo

Properties
Name Type Description
skip number

Offset pour un find

Source: