As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$zip
O $zip operador no Amazon DocumentDB permite combinar várias matrizes em uma única matriz de tuplas (pares de valores-chave). Isso é útil quando você precisa criar novos documentos ou objetos combinando dados de diferentes fontes ou matrizes em um documento.
Parâmetros
-
inputs: uma matriz de expressões que se resolvem em matrizes. Essas matrizes serão combinadas em uma única matriz de tuplas. -
useLongestLength: (opcional) Setrue, a matriz de saída tiver o comprimento da matriz de entrada mais longa, preenchendo matrizes mais curtas com valores.nullSefalse, a matriz de saída terá o comprimento da matriz de entrada mais curta. -
defaults: (opcional) Uma matriz de valores padrão a serem usados para as tuplas se a matriz de entrada correspondente for menor que a matriz de entrada mais longa euseLongestLengthfor.true
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra como usar o $zip operador para combinar duas matrizes em uma única matriz de tuplas.
Crie documentos de amostra
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"] } ])
Exemplo de consulta
db.grades.aggregate([ { $project: { "name": 1, "scoredClasses": { $zip: { inputs: ["$scores", "$classes"], useLongestLength: true, defaults: [null, null] } } } } ])
Saída
[
{
"_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"]
]
}
]
Exemplos de código
Para ver um exemplo de código para usar o $zip comando, escolha a guia do idioma que você deseja usar: