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

$setDifference

Novo a partir da versão 4.0.

O $setDifference operador no Amazon DocumentDB é usado para comparar dois conjuntos e retornar os elementos que estão no primeiro conjunto, mas não no segundo. Esse operador é útil para encontrar os elementos exclusivos entre dois conjuntos.

Parâmetros

  • firstSet: O primeiro conjunto a ser comparado.

  • secondSet: O segundo conjunto para comparar.

Exemplo (MongoDB Shell)

O exemplo a seguir demonstra como usar o $setDifference operador para encontrar os elementos exclusivos entre dois conjuntos.

Crie documentos de amostra

db.collection.insertMany([ { _id: 1, fruits: ["apple", "banana", "cherry", "date"] }, { _id: 2, fruits: ["banana", "cherry", "date", "elderberry"] } ]);

Exemplo de consulta

db.collection.aggregate([ { $project: { uniqueFruits: { $setDifference: ["$fruits", ["banana", "cherry", "date"]] } } } ]);

Saída

[ { "_id": 1, "uniqueFruits": ["apple"] }, { "_id": 2, "uniqueFruits": ["elderberry"] } ]

A consulta executa as seguintes etapas:

1. Ele usa o $project palco para criar um novo campo uniqueFruits para cada documento.

2. O $setDifference operador compara a fruits matriz com a matriz ["banana", "cherry", "date"] e retorna os elementos exclusivos na fruits matriz.

Exemplos de código

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

Node.js

Veja um exemplo de como usar o $setDifference operador em um aplicativo 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 collection = db.collection('mycollection'); // Insert sample documents await collection.insertMany([ { _id: 1, fruits: ["apple", "banana", "cherry", "date"] }, { _id: 2, fruits: ["banana", "cherry", "date", "elderberry"] } ]); // Query using $setDifference const result = await collection.aggregate([ { $project: { uniqueFruits: { $setDifference: ["$fruits", ["banana", "cherry", "date"]] } } } ]).toArray(); console.log(result); await client.close(); } main();
Python

Aqui está um exemplo de como usar o $setDifference operador em um aplicativo 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'] collection = db['mycollection'] # Insert sample documents collection.insert_many([ {'_id': 1, 'fruits': ["apple", "banana", "cherry", "date"]}, {'_id': 2, 'fruits': ["banana", "cherry", "date", "elderberry"]} ]) # Query using $setDifference result = list(collection.aggregate([ { '$project': { 'uniqueFruits': {'$setDifference': ['$fruits', ["banana", "cherry", "date"]]} } } ])) print(result) client.close() if __name__ == '__main__': main()