$size - 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.

$size

L'$sizeopérateur est utilisé pour renvoyer le nombre d'éléments dans un champ de tableau. Cela peut être utilisé pour déterminer le nombre d'éléments d'un tableau stocké dans un document.

Paramètres

  • field: le chemin du champ dont vous souhaitez renvoyer la taille du tableau.

Exemple (MongoDB Shell)

Cet exemple montre comment utiliser l'$sizeopérateur pour renvoyer le nombre d'équipes suivies par chaque utilisateur.

Création d'exemples de documents

db.profiles.insertMany([ { _id: 1, name: "John Doe", teams: ["Acme", "Widgets", "Gadgets"] }, { _id: 2, name: "Jane Smith", teams: ["Acme", "Gadgets"] }, { _id: 3, name: "Bob Johnson", teams: ["Acme", "Widgets", "Gadgets"] } ]);

Exemple de requête

db.profiles.aggregate([ { $project: { _id: 0, name: 1, "numberOfTeams": { $size: "$teams" } } } ])

Sortie

[ { name: 'John Doe', numberOfTeams: 3 }, { name: 'Jane Smith', numberOfTeams: 2 }, { name: 'Bob Johnson', numberOfTeams: 3 } ]

Exemples de code

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

Node.js
const { MongoClient } = require('mongodb'); async function main() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const profiles = db.collection('profiles'); const result = await profiles.aggregate([ { $project: { item: 1, "numberOfTeams": { $size: "$teams" } } } ]).toArray(); console.log(result); await client.close(); } main();
Python
from pymongo import MongoClient def main(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] profiles = db.profiles result = list(profiles.aggregate([ { '$project': { 'item': 1, 'numberOfTeams': { '$size': '$teams' } } } ])) print(result) client.close() if __name__ == "__main__": main()