$unwind - Amazon DocumentDB

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á.

$unwind

O $unwind operador é usado para desconstruir um campo de matriz dos documentos de entrada para gerar um documento para cada elemento. Isso pode ser útil quando você deseja realizar operações nos elementos individuais de uma matriz, como filtrar, classificar ou transformar os dados.

Parâmetros

  • path: o caminho para o campo de matriz a ser desenrolado.

  • includeArrayIndex: (opcional) Especifica o nome do novo campo para conter o índice do elemento da matriz.

  • preserveNullAndEmptyArrays: (opcional) Determina se a operação mantém o documento original quando o campo de matriz é nulo ou uma matriz vazia.

Exemplo (MongoDB Shell)

O exemplo a seguir demonstra como usar o $unwind operador para desconstruir um campo de matriz e realizar outras operações nos elementos individuais.

Crie documentos de amostra

db.people.insertMany([ { _id: 1, name: "jon", hobbies: ["painting", "dancing", "singing"] }, { _id: 2, name: "jane", hobbies: ["reading", "swimming"] }, { _id: 3, name: "jack", hobbies: [] } ])

Exemplo de consulta

db.people.aggregate([ { $unwind: "$hobbies" } ])

Saída

[ { _id: 1, name: 'jon', hobbies: 'painting' }, { _id: 1, name: 'jon', hobbies: 'dancing' }, { _id: 1, name: 'jon', hobbies: 'singing' }, { _id: 2, name: 'jane', hobbies: 'reading' }, { _id: 2, name: 'jane', hobbies: 'swimming' } ]

Exemplos de código

Para ver um exemplo de código para usar o $unwind comando, escolha a guia do idioma que você deseja usar:

Node.js
const { MongoClient } = require('mongodb'); async function example() { 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 collection = db.collection('people'); const result = await collection.aggregate([ { $unwind: '$hobbies' } ]).toArray(); console.log(result); client.close(); } example();
Python
from pymongo import MongoClient def example(): 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['people'] result = list(collection.aggregate([ { '$unwind': '$hobbies' } ])) print(result) client.close() example()