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

$setDifference

Nouveau depuis la version 4.0.

L'$setDifferenceopérateur dans Amazon DocumentDB est utilisé pour comparer deux ensembles et renvoyer les éléments qui se trouvent dans le premier ensemble mais pas dans le second ensemble. Cet opérateur est utile pour trouver les éléments uniques entre deux ensembles.

Paramètres

  • firstSet: premier ensemble à comparer.

  • secondSet: Le deuxième ensemble à comparer.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$setDifferenceopérateur pour rechercher les éléments uniques entre deux ensembles.

Création d'exemples de documents

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

Exemple de requête

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

Sortie

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

La requête exécute les étapes suivantes :

1. Il utilise la $project scène pour créer un nouveau champ uniqueFruits pour chaque document.

2. L'$setDifferenceopérateur compare le fruits tableau avec le tableau ["banana", "cherry", "date"] et renvoie les éléments uniques du fruits tableau.

Exemples de code

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

Node.js

Voici un exemple d'utilisation de l'$setDifferenceopérateur dans une application 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

Voici un exemple d'utilisation de l'$setDifferenceopérateur dans une application 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()