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.
$zip
L'$zipopérateur d'Amazon DocumentDB vous permet de combiner plusieurs tableaux en un seul tableau de tuples (paires clé-valeur). Cela est utile lorsque vous devez créer de nouveaux documents ou objets en combinant des données provenant de différentes sources ou de différents tableaux au sein d'un document.
Paramètres
-
inputs: un tableau d'expressions qui se résolvent en tableaux. Ces tableaux seront combinés en un seul tableau de tuples. -
useLongestLength: (facultatif) Sitrue, le tableau de sortie aura la longueur du tableau d'entrée le plus long, les tableaux plus courts seront remplisnullde valeurs. Sifalse, le tableau de sortie aura la longueur du tableau d'entrée le plus court. -
defaults: (facultatif) Un tableau de valeurs par défaut à utiliser pour les tuples si le tableau d'entrée correspondant est plus court que le tableau d'entrée le plus long et l'useLongestLengthesttrue.
Exemple (MongoDB Shell)
L'exemple suivant montre comment utiliser l'$zipopérateur pour combiner deux tableaux en un seul tableau de tuples.
Création d'exemples de documents
db.grades.insert([ { "_id": 1, "name": "John", "scores": [90, 85, 92], "classes": ["Math", "English", "Science"] }, { "_id": 2, "name": "Jane", "scores": [88, 91, 90, 85], "classes": ["Math", "English", "Science", "History"] } ])
Exemple de requête
db.grades.aggregate([ { $project: { "name": 1, "scoredClasses": { $zip: { inputs: ["$scores", "$classes"], useLongestLength: true, defaults: [null, null] } } } } ])
Sortie
[
{
"_id": 1,
"name": "John",
"scoredClasses": [
[90, "Math"],
[85, "English"],
[92, "Science"],
[null, null]
]
},
{
"_id": 2,
"name": "Jane",
"scoredClasses": [
[88, "Math"],
[91, "English"],
[90, "Science"],
[85, "History"]
]
}
]
Exemples de code
Pour afficher un exemple de code d'utilisation de la $zip commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :