MongoDB $ First et $ Firstn Opérateurs

MongoDB $ First et $ Firstn Opérateurs

Les opérateurs $ First et $ Firstn sont la méthode du pipeline d'agrégation de MongoDB. L'opérateur de première agrégation $ nous permet de déterminer la première valeur dans un tableau. Le premier opérateur $ ne prend le tableau que comme paramètre d'entrée. L'opérateur $ Firstn renvoie un numéro prédéfini des entrées de l'indice de départ d'un tableau. Le nombre spécifié pour l'opérateur $ Firstn ne peut pas être inférieur à «1». De plus, l'opérateur $ premier donne le tableau d'origine si le nombre défini est supérieur ou égal aux valeurs du tableau.

Comment utiliser les opérateurs $ First et $ Firstn à MongoDB

Les opérateurs $ First et $ Firstn sont utilisés dans MongoDB pour obtenir le nombre d'éléments requis de la gamme de documents. Les opérateurs $ First et $ Firstn ne résolvent que les champs de tableau dans les documents de la collection MongoDB. Nous travaillons avec la collection «FoodItems» dans cet article MongoDB. Nous ajoutons les documents de la collection «FoodItems» qui contient également le champ de tableau sur lequel les opérateurs $ First et $ Firstn fonctionnent également. La commande pour ajouter les documents est représentée ici qui utilise la méthode insertMany () pour l'insertion en même temps.

db.Produits alimentaires.insertmany ([

"_id": 1,
"nom": "fruits",
"Liste": ["Apple", "Mango", "Cherry", "Kiwi"],
"Prix": 350
,

"_id": 2,
"nom": "légumes",
"Liste": ["" Beetroot "," Radish "," Currip "," Carrot."],
"Prix": 255
,

"_id": 3,
"Nom": "Snack Food",
"Liste": ["Popcorn", "Salted Peanuts", "Fries", "Coungettes", "Chocolates"],
"Prix": 400
,

"_id": 4,
"nom": "boissons",
"Liste": ["Lemonade", "Milkshake", "thé glacé", "café", "eau", "chocolat chaud"],
"Prix": 550
,
"_id": 5,
"Nom": "Food",
"Liste": null,
"Prix": 300

])

Désormais, les résultats de l'insertion des documents sont affichés dans les suivants qui reconnaissent «vrai» et indiquent que tous les documents sont insérés sans aucune erreur dans la collection spécifiée:


Reconnu: vrai,
insertEDID: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Exemple 1: Utilisation du premier opérateur MongoDB $ pour obtenir la première valeur du tableau

Comme nous l'avons déjà discuté, le premier opérateur $ collecte le premier élément du champ de tableau du document spécifié. Dans l'exemple, nous utilisons le premier opérateur $ MongoDB pour récupérer la première valeur de champ de tableau de tous les documents qui sont insérés dans la collection «FoodItems». Nous déploiement de la commande globale où l'opérateur de projet $ est spécifié. L'opérateur de projet $ ajoute le nouveau champ «FirstItem» qui a le First Operator $ avec l'expression. Le premier opérateur $ prend le nom du champ de tableau «$ list» pour obtenir le premier élément.

db.Produits alimentaires.agrégat([

$ Project:
"FirstItem":
$ d'abord: "$ liste"



])

Nous pouvons voir que le premier opérateur $ renvoie la première valeur du tableau «$ List» de tous les documents.

[
_id: 1, FirstItem: 'Apple',
_id: 2, FirstItem: 'Beetroot',
_id: 3, FirstItem: 'Popcorn',
_id: 4, FirstItem: 'Lemonade',
_id: 5, FirstItem: null
]]

Exemple 2: Utilisation du premier opérateur MongoDB $ pour l'opérande non valide

Nous savons que l'opérateur $ First ne gère que les tableaux. Mais le premier opérateur $ découle de la fourniture d'un opérande non valide. Ici, nous avons un exemple de don d'un opérande invalide dans le premier opérateur $ pour augmenter l'attente. Nous utilisons la même requête que dans l'exemple précédent, mais la différence est dans le premier opérateur $ où l'expression est modifiée. Au lieu de donner le champ de tableau à partir des documents, nous entrons le champ «$ Price» qui ne contient pas. Lorsque la requête est exécutée, l'erreur est générée.

db.Produits alimentaires.agrégat([

$ Project:
"Article":
$ d'abord: "$ prix"



])

L'erreur MongoDB suivante se produit car le champ de prix $ n'est pas un tableau. Le premier opérateur $ dans MongoDB ne traite que les tableaux comme mentionné dans l'erreur suivante:

MongoServerError: PlanexecUtor Erreur pendant l'agrégation :: causée par :: $ L'argument de First doit être un tableau, mais est int

Exemple 3: Utilisation du premier opérateur MongoDB $ pour les valeurs manquantes et nulles du tableau

Le premier opérateur $ renvoie null si l'argument est un champ de tableau vide ou un champ de tableau manquant. Nous correspondons au document qui contient la valeur «_id» «5» car elle contient l'élément de tableau nul. Après cela, nous avons défini le premier opérateur $ dans le champ de l'opérateur de projet $, «FirstListValue». Le premier opérateur $ a le champ de tableau d'entrée «$ list» pour obtenir son premier élément.

db.Produits alimentaires.agrégat([
$ correspond: "_id": 5,
$ Project:
"FirstListValue":
$ d'abord: "$ liste"



])

Comme nous l'avons vu dans le document «_id: 5», le champ de tableaux $ contient la valeur nul. Lorsque le premier opérateur $ précédent est exécuté dans le shell, il donne la valeur nul.

[_id: 5, firstListValue: null]

Exemple 4: Utilisation de l'opérateur MongoDB $ Firstn pour les valeurs nième du tableau

Maintenant, nous récupérons le nombre requis d'éléments du champ de tableau. Pour cela, nous avons l'opérateur $ Firstn dont la mise en œuvre est légèrement différente de l'opérateur $ First en fonction de la fonctionnalité. Là, nous définissons l'expression «_id: 3» dans l'opérateur $ Match pour faire correspondre le document avec cette expression. Ensuite, nous avons un nouveau champ «FirstListValue» qui est inclus dans l'opérateur de projet $. Le nouveau champ «FirstListValue» est utilisé avec l'opérateur $ Firstn où les arguments «entrée» et «n» sont définis. L'argument «d'entrée» a le nom du champ de tableau «$ listes». L'argument «N» a la valeur entière de «2» qui indique le nombre des éléments qui sont récupérés du champ de tableau fourni.

db.Produits alimentaires.agrégat([
$ correspond: "_id": 3,
$ Project:
"FirstListValue":
$ premier: entrée: "$ list", n: 2



])

Nous avons obtenu deux éléments du tableau «Liste» suivant car le numéro est spécifié à l'opérateur $ premier:

[_id: 3, firstListValue: ['popcorn', 'salé d'arachides']]

Exemple 5: Utilisation du premier opérateur MongoDB $ pour la nième valeur d'un tableau avec la condition

De plus, l'argument «N» de l'opérateur $ Firstn peut être attribué avec une valeur dynamiquement. Le paramètre «n» a une instruction conditionnelle qui lui est associée qui l'informe pour récupérer l'élément spécifié du tableau lorsque la condition est satisfaite. Considérez la commande suivante de l'opérateur $ Firstn. Nous fournissons à l'opérateur $ MATCH avec un document «_id: 2» à faire correspondre à l'opérateur $ Firstn. Après cela, nous insérons le champ «FirstListValue» à l'intérieur de l'opérateur de projet $. Ensuite, nous avons un opérateur $ Firstn dans le champ «FirstListValue» projeté ainsi que son paramètre.

La «saisie» est le premier paramètre défini dans l'opérateur $ Firstn avec le champ «$ List». Ensuite, le paramètre «N» est spécifié avec l'opérateur $ cond qui définit la condition IF-Else. À l'intérieur du «si», nous avons une autre condition qui est «$ gt: [« $ prix », 550]». Si le prix $ est supérieur à la valeur de «550», l'élément «1» est récupéré. Sinon, l'option «else» affiche des éléments «3».

db.Produits alimentaires.agrégat([
$ correspond: _id: 2,
$ Project:
"FirstListValue":
$ premier: entrée: "$ list",
n: $ cond: if: $ gt: ["$ prix", 550], alors: 1, else: 3




])

L'opérateur $ Firstn produit trois éléments du tableau de liste $ car la valeur de prix $ est «350» du document donné qui n'est pas supérieure à la valeur spécifiée.

[_id: 2, firstlistValue: ['beetroot', 'radish', 'navet']]

Conclusion

Cet article a exploré les opérateurs MongoDB $ First et $ Firstn. Premièrement, les exemples de l'opérateur $ sont fournis avec les différents cas. L'exemple du premier opérateur $ a obtenu la première valeur du tableau. Ensuite, l'opérateur $ First renvoie la valeur nul car le champ de tableau a la valeur manquante. Après cela, l'exemple d'exception de l'opérateur $ First Operator est donné pour un argument non valide. L'opérateur $ Firstn est spécifié pour collecter les éléments du Nth auprès du tableau. De plus, l'opérateur $ Firstn collecte les éléments en fonction de la condition qui est donnée au paramètre «N».