$first - Amazon DocumentDB

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.

$first

Nouveau depuis la version 5.0.

Non pris en charge par le cluster Elastic.

L'$firstopérateur d'Amazon DocumentDB renvoie le premier document d'un ensemble groupé de documents. Il est couramment utilisé dans les pipelines d'agrégation pour récupérer le premier document correspondant à une condition spécifique.

Paramètres

  • expression: expression à renvoyer comme première valeur de chaque groupe.

Exemple (MongoDB Shell)

L'exemple suivant illustre l'utilisation de l'$firstopérateur pour récupérer la première valeur d'élément rencontrée pour chaque catégorie lors de l'agrégation.

Remarque : $first renvoie le premier document en fonction de l'ordre actuel des documents dans le pipeline. Pour garantir une commande spécifique (par exemple, date limite, prix, etc.), une $sort étape doit être utilisée avant l'$groupétape.

Création d'exemples de documents

db.products.insertMany([ { _id: 1, item: "abc", price: 10, category: "food" }, { _id: 2, item: "jkl", price: 20, category: "food" }, { _id: 3, item: "xyz", price: 5, category: "toy" }, { _id: 4, item: "abc", price: 5, category: "toy" } ]);

Exemple de requête

db.products.aggregate([ { $group: { _id: "$category", firstItem: { $first: "$item" } } } ]);

Sortie

[ { "_id" : "food", "firstItem" : "abc" }, { "_id" : "toy", "firstItem" : "xyz" } ]

Exemples de code

Pour afficher un exemple de code d'utilisation de la $first commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

Node.js
const { MongoClient } = require('mongodb'); async function example() { const uri = 'mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'; const client = new MongoClient(uri); try { await client.connect(); const db = client.db('test'); const collection = db.collection('products'); const result = await collection.aggregate([ { $group: { _id: "$category", firstItem: { $first: "$item" } } } ]).toArray(); console.log(result); } catch (error) { console.error('Error:', error); } finally { await client.close(); } } example();
Python
from pymongo import MongoClient from pprint import pprint def example(): client = None try: client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] collection = db['products'] result = list(collection.aggregate([ { '$group': { '_id': '$category', 'firstItem': { '$first': '$item' } } } ])) pprint(result) except Exception as e: print(f"An error occurred: {e}") finally: if client: client.close() example()