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

$setIsSubset

L'$setIsSubsetopérateur dans Amazon DocumentDB est utilisé pour déterminer si un ensemble de valeurs est un sous-ensemble d'un autre ensemble. Il est utile pour effectuer des comparaisons basées sur des ensembles et des opérations sur des champs de tableau.

Paramètres

  • field: Le champ auquel appliquer l'$setIsSubsetopérateur.

  • set: L'ensemble avec lequel comparer le champ.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$setIsSubsetopérateur pour vérifier si le tags champ est un sous-ensemble de l'ensemble spécifié.

Création d'exemples de documents

db.products.insertMany([ { _id: 1, name: "Product A", tags: ["tag1", "tag2", "tag3"] }, { _id: 2, name: "Product B", tags: ["tag1", "tag2"] }, { _id: 3, name: "Product C", tags: ["tag2", "tag3"] } ]);

Exemple de requête

db.products.find({ $expr: { $setIsSubset: [["tag1", "tag2"], "$tags"] } })

*Remarque :* $setIsSubset est un opérateur d'agrégation qui ne peut pas être utilisé directement dans les requêtes find (). Dans cet exemple, $expr est utilisé pour combler le fossé entre les opérateurs de requête et les expressions d'agrégation. find()

Sortie

[ { "_id" : 1, "name" : "Product A", "tags" : [ "tag1", "tag2", "tag3" ] }, { "_id" : 2, "name" : "Product B", "tags" : [ "tag1", "tag2" ] } ]

La requête renvoie les documents dont le tags champ est un sous-ensemble de l'ensemble["tag1", "tag2"].

Exemples de code

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

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('products'); const result = await collection.find({ $expr: { $setIsSubset: [["tag1", "tag2"], "$tags"] } }).toArray(); console.log(result); await 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['products'] result = list(collection.find({ '$expr': {'$setIsSubset': [['tag1', 'tag2'], '$tags']} })) print(result) client.close() example()