Les opérateurs : $and,$or,$not,$ne,$nor
Exemples
Exemples avec find et findOne
Supposons une collection appelée users avec des documents ayant des champs name, age, et city.
find avec $and:
findOne avec $and:
Exemples avec delete et deleteOne
Supposons que vous vouliez supprimer des utilisateurs en fonction de certains critères.
delete avec $and: deleteOne avec $and:
Exemples avec update et updateMany
Supposons que vous vouliez mettre à jour des documents en fonction de certains critères.
update avec $and: updateMany avec $and:
Exemples avec aggregate
aggregate avec $andExemples avec find et findOne
find avec $and:
findOne avec $and:
Exemples avec delete et deleteOne
delete avec $and:
deleteOne avec $and:
Exemples avec update et updateMany
update avec $and:
updateMany avec $and:
Exemples avec aggregate
aggregate avec $and:
Supposons une collection "products" avec des documents qui ressemblent à ceci :
Exemples avec find et findOne
find avec $and pour filtrer les produits disponibles dans une certaine catégorie avec un prix inférieur à 1500 :
findOne avec $and pour trouver un produit avec une certaine étiquette et une note de revue spécifique :
Exemples avec delete et deleteOne
delete avec $and pour supprimer des produits dans une certaine catégorie avec un prix inférieur à 1000 :
deleteOne avec $and pour supprimer une étiquette spécifique d'un produit :
Exemples avec update et updateMany
update avec $and pour augmenter le prix des produits dans une certaine catégorie avec une note de revue inférieure à 3 :
updateMany avec $and pour ajouter une nouvelle critique à un produit avec une certaine étiquette :
Exemples avec aggregate
aggregate avec $and pour calculer la moyenne des prix des produits dans une certaine catégorie avec une note de revue supérieure à 4 :
Supposons une collection "orders" avec des documents qui ressemblent à ceci :
Exemples avec find et findOne
find avec $and pour trouver des commandes d'un client particulier avec un certain statut :
findOne avec $and pour trouver une commande avec une date spécifique et un prix total inférieur à 600 :
Exemples avec delete et deleteOne
delete avec $and pour supprimer des commandes expédiées d'un client spécifique :
deleteOne avec $and pour supprimer un produit spécifique d'une commande :
Exemples avec update et updateMany
update avec $and pour mettre à jour le statut des commandes expédiées d'un client particulier :
updateMany avec $and pour ajouter des points de fidélité à un client en fonction du montant total de ses commandes :
Exemples avec aggregate
aggregate avec $and pour calculer le montant total des commandes expédiées par catégorie de produits :
Exemples avec find et findOne
find avec $or pour trouver des commandes d'un client particulier avec un certain statut :
findOne avec $or pour trouver une commande avec une date spécifique ou un prix total inférieur à 600 :
Exemples avec delete et deleteOne
delete avec $or pour supprimer des commandes expédiées d'un client spécifique :
deleteOne avec $or pour supprimer un produit spécifique d'une commande :
Exemples avec update et updateMany
update avec $or pour mettre à jour le statut des commandes expédiées d'un client particulier :
updateMany avec $or pour ajouter des points de fidélité à un client en fonction du montant total de ses commandes :
Exemples avec aggregate
aggregate avec $or pour calculer le montant total des commandes expédiées par catégorie de produits :
Supposons toujours une collection "products" avec des documents qui ressemblent à ceci :
Exemples avec find et findOne
find avec $or pour trouver des produits dans une certaine catégorie ou avec un prix inférieur à 600 :
findOne avec $or pour trouver un produit avec une étiquette spécifique ou une note de revue supérieure à 4 :
Exemples avec delete et deleteOne
delete avec $or pour supprimer des produits dans une certaine catégorie ou avec un prix supérieur à 1000 :
deleteOne avec $or pour supprimer un produit spécifique ou avec une note de revue inférieure à 3 :
Exemples avec update et updateMany
update avec $or pour augmenter le prix des produits dans une certaine catégorie ou avec une note de revue inférieure à 3 :
updateMany avec $or pour ajouter une nouvelle critique à un produit avec une certaine étiquette ou avec un prix inférieur à 500 :
Exemples avec aggregate
aggregate avec $or pour calculer la moyenne des prix des produits dans une certaine catégorie ou avec une note de revue supérieure à 4 :
Supposons toujours une collection "employees" avec des documents qui ressemblent à ceci :
Exemples avec find et findOne
find avec $or pour trouver des employés dans une certaine position ou avec une compétence spécifique :
findOne avec $or pour trouver un employé avec un projet spécifique ou un salaire inférieur à 90000 :
Exemples avec delete et deleteOne
delete avec $or pour supprimer des employés dans une certaine position ou avec un salaire supérieur à 120000 :
deleteOne avec $or pour supprimer un employé spécifique ou avec une compétence particulière :
Exemples avec update et updateMany
update avec $or pour mettre à jour le salaire des employés dans une certaine position ou avec une compétence spécifique :
updateMany avec $or pour ajouter une nouvelle compétence à un employé avec un projet spécifique :
Exemples avec aggregate
aggregate avec $or pour calculer la moyenne des salaires des employés dans une certaine position ou avec une compétence spécifique :
Supposons maintenant une collection "books" avec des documents qui ressemblent à ceci :
Exemples avec find et findOne
find avec $or pour trouver des livres dans une certaine année de publication ou avec un score de notation inférieur à 4 :
findOne avec $or pour trouver un livre avec un genre spécifique ou une étiquette particulière :
Exemples avec delete et deleteOne
delete avec $or pour supprimer des livres dans un genre spécifique ou avec une étiquette particulière :
deleteOne avec $or pour supprimer un livre spécifique ou avec un score de notation supérieur à 4 :
Exemples avec update et updateMany
update avec $or pour mettre à jour le genre des livres dans une certaine année de publication ou avec une étiquette particulière :
updateMany avec $or pour ajouter une nouvelle notation à un livre avec un titre spécifique ou une étiquette particulière :
Exemples avec aggregate
aggregate avec $or pour calculer la moyenne des scores de notation des livres dans un genre spécifique ou avec une étiquette particulière :
Exemples avec find et findOne
find avec $and et $or pour trouver des commandes d'un client spécifique avec un certain statut ou une date spécifique :
findOne avec $or et $and pour trouver une commande avec une date spécifique, un prix total inférieur à 600, et un statut "Shipped" :
Exemples avec delete et deleteOne
delete avec $or et $and pour supprimer des commandes expédiées d'un client spécifique ou avec un prix total supérieur à 800 :
deleteOne avec $or et $and pour supprimer une commande avec une date spécifique ou un produit "Headphones" :
Exemples avec update et updateMany
update avec $and et $or pour mettre à jour le statut des commandes expédiées d'un client spécifique ou avec un prix total supérieur à 700 :
updateMany avec $or et $and pour ajouter des points de fidélité à un client en fonction du montant total de ses commandes ou du statut "Delivered" :
Exemples avec aggregate
aggregate avec $and et $or pour calculer le montant total des commandes expédiées par catégorie de produits ou avec une date spécifique :
Exemples avec find et findOne
1. find avec $and et $or pour trouver des commandes d'un client spécifique avec un certain statut ou une date spécifique :
$and: Combinaison logique des conditions à satisfaire. $or: Au moins l'une des conditions à l'intérieur de cette clause doit être vraie. "customer.name": "Alice": La commande doit appartenir à Alice. $or: La commande doit avoir le statut "Shipped" ou avoir une date spécifique.
$expr: Permet d'utiliser des expressions MongoDB, ici pour comparer le prix total. $lt: Condition "inférieur à" pour comparer le prix total avec 600. "orderDate": ISODate("2023-01-01T08:00:00Z"): La commande doit avoir une date spécifique. $or: La commande doit avoir un prix total inférieur à 600 ou un statut "Shipped".
Exemples avec delete et deleteOne
1. delete avec $or et $and pour supprimer des commandes expédiées d'un client spécifique ou avec un prix total supérieur à 800 :
$gt: Condition "supérieur à" pour comparer le prix total avec 800. "status": "Shipped": La commande doit être expédiée. "customer.name": "Bob": La commande doit appartenir à Bob. $or: La commande doit avoir un prix total supérieur à 800.
"orderDate": ISODate("2023-01-01T08:00:00Z"): La commande doit avoir une date spécifique. $or: La commande doit avoir un produit "Headphones" ou un statut "Pending".
Exemples avec update et updateMany
1. update avec $and et $or pour mettre à jour le statut des commandes expédiées d'un client spécifique ou avec un prix total supérieur à 700 :
$set: Met à jour le statut des commandes expédiées à "Delivered". "status": "Shipped": La commande doit être expédiée. "customer.name": "Alice": La commande doit appartenir à Alice. $gt: Condition "supérieur à" pour comparer le prix total avec 700. $or: La commande doit avoir un prix total supérieur à 700.
$inc: Incrémente les points de fidélité du client de 50. "customer.name": "Alice": La commande doit appartenir à Alice. $gte: Condition "supérieur ou égal à" pour comparer le prix total avec 500. $or: La commande doit avoir un prix total supérieur ou égal à 500 ou un statut "Delivered".
Exemples avec aggregate
aggregate avec $and et $or pour calculer le montant total des commandes expédiées par catégorie de produits ou avec une date spécifique :
$match: Filtre les commandes expédiées avec certains produits ou une date spécifique. $in: Vérifie si le nom du produit est dans la liste spécifiée. $group: Groupe les commandes expédiées par statut et calcule le montant total des produits. Ces explications devraient clarifier le rôle de chaque ligne dans les opérations MongoDB utilisant les opérateurs $and et $or. Si vous avez des questions spécifiques sur une ligne en particulier, n'hésitez pas à demander !
Exemples avec find et findOne
1. find avec $not pour trouver des commandes qui ne sont pas expédiées :
$not: Négation logique. $eq: Opérateur d'égalité. "status": { $not: { $eq: "Shipped" } }: Trouve des commandes avec un statut différent de "Shipped".
"customer.name": { $not: { $eq: "Alice" } }: Trouve une commande dont le nom du client n'est pas "Alice".
Exemples avec delete et deleteOne
1. delete avec $not pour supprimer des commandes qui ne sont pas expédiées ou dont le montant total est inférieur à 500 :
$or: Au moins une des conditions à l'intérieur de cette clause doit être vraie. $expr: Permet d'utiliser des expressions MongoDB. $gte: Condition "supérieur ou égal à". "$sum": "$products.price": Calcule le montant total des produits dans la commande. $not: Négation de l'ensemble de conditions.
$and: Combinaison logique des conditions à satisfaire. "status": "Shipped": La commande doit être expédiée. "products.name": "Laptop": Le nom du produit doit être "Laptop". $not: Négation de l'ensemble de conditions.
Exemples avec update et updateMany
1. update avec $not pour mettre à jour le statut des commandes qui ne sont pas encore expédiées :
$set: Met à jour le statut des commandes non expédiées à "Pending". "status": { $not: { $eq: "Shipped" } }: La commande ne doit pas être expédiée.
$inc: Incrémente les points de fidélité du client de 20. "customer.name": { $not: { $eq: "Alice" } }: Le nom du client ne doit pas être "Alice".
Exemples avec aggregate
aggregate avec $not pour calculer le montant total des commandes non expédiées :
$match: Filtre les commandes non expédiées. $not: Négation logique. $eq: Opérateur d'égalité. $group: Groupe les commandes par statut et calcule le montant total des produits.
Supposons une collection "employees" avec des documents qui ressemblent à ceci :
Exemples avec find et findOne
1. find avec $not pour trouver des employés dont la position n'est pas "Developer" :
$eq: Opérateur d'égalité. $not: Négation logique. "position": { $not: { $eq: "Developer" } }: Trouve des employés dont la position n'est pas "Developer".
"age": { $not: { $eq: 30 } }: Trouve un employé dont l'âge n'est pas égal à 30.
Exemples avec delete et deleteOne
1. delete avec $not pour supprimer des employés dont la position n'est pas "Manager" :
"position": { $not: { $eq: "Manager" } }: Supprime des employés dont la position n'est pas "Manager".
"salary": { $not: { $eq: 90000 } }: Supprime un employé dont le salaire n'est pas égal à 90000.
Exemples avec update et updateMany
1. update avec $not pour augmenter le salaire des employés dont la position n'est pas "Intern" :
$mul: Multiplie le salaire par 1.1 (augmente le salaire de 10%). "position": { $not: { $eq: "Intern" } }: Met à jour le salaire des employés dont la position n'est pas "Intern".
$push: Ajoute une nouvelle compétence ("Python") à la liste des compétences. "projects.name": { $not: { $eq: "Project B" } }: Ajoute la compétence uniquement aux employés dont le projet n'est pas "Project B".
Exemples avec aggregate
aggregate avec $not pour calculer la moyenne des salaires des employés dont la position n'est pas "Developer" :
$match: Filtre les employés dont la position n'est pas "Developer". $not: Négation logique. $eq: Opérateur d'égalité. $group: Groupe les employés par position et calcule la moyenne des salaires.
Exemples avec find et findOne
1. find avec $in pour trouver des employés avec une position spécifique :
$in: Vérifie si la valeur d'un champ est dans une liste donnée. "position": { $in: ["Manager", "Developer"] }: Trouve des employés dont la position est "Manager" ou "Developer".
"skills": { $in: ["Java", "Python"] }: Trouve un employé ayant les compétences "Java" ou "Python".
Exemples avec delete et deleteOne:
1. delete avec $in pour supprimer des employés dont la position est dans une liste spécifique :
"position": { $in: ["Intern", "Consultant"] }: Supprime des employés dont la position est "Intern" ou "Consultant".
"skills": { $in: ["Management"] }: Supprime un employé ayant la compétence "Management".
Exemples avec update et updateMany
1. update avec $in pour augmenter le salaire des employés dans une liste spécifique de positions :
$mul: Multiplie le salaire par 1.1 (augmente le salaire de 10%). "position": { $in: ["Manager", "Developer"] }: Met à jour le salaire des employés dont la position est "Manager" ou "Developer".
$push: Ajoute une nouvelle compétence ("MongoDB") à la liste des compétences. "projects.name": { $in: ["Project C", "Project D"] }: Ajoute la compétence uniquement aux employés travaillant sur les projets "Project C" ou "Project D".
Exemples avec aggregate
aggregate avec $in pour calculer la moyenne des salaires des employés dans une liste spécifique de positions :
$match: Filtre les employés dont la position est "Manager" ou "Developer". $in: Vérifie si la valeur du champ "position" est dans la liste spécifiée. $group: Groupe les employés par position et calcule la moyenne des salaires.
Supposons une collection "products" avec des documents qui ressemblent à ceci :
Exemples avec find et findOne
1. find avec $in pour trouver des produits dans une liste spécifique de catégories :
$in: Vérifie si la valeur d'un champ est dans une liste donnée. "category": { $in: ["Electronics", "Clothing"] }: Trouve des produits dont la catégorie est "Electronics" ou "Clothing".
"features": { $in: ["SSD"] }: Trouve un produit ayant la caractéristique "SSD".
Exemples avec delete et deleteOne
1. delete avec $in pour supprimer des produits dans une liste spécifique de catégories :
"category": { $in: ["Home", "Appliances"] }: Supprime des produits dont la catégorie est "Home" ou "Appliances".
"features": { $in: ["High Resolution Display"] }: Supprime un produit ayant la caractéristique "High Resolution Display".
Exemples avec update et updateMany
1. update avec $in pour augmenter le prix des produits dans une liste spécifique de catégories :
$mul: Multiplie le prix par 1.1 (augmente le prix de 10%). "category": { $in: ["Electronics", "Clothing"] }: Met à jour le prix des produits dont la catégorie est "Electronics" ou "Clothing".
$push: Ajoute une nouvelle caractéristique ("Smart Technology") à la liste des caractéristiques. "category": { $in: ["Electronics", "Appliances"] }: Ajoute la caractéristique uniquement aux produits dont la catégorie est "Electronics" ou "Appliances".
Exemples avec aggregate
aggregate avec $in pour calculer la moyenne des prix des produits dans une liste spécifique de catégories :
$match: Filtre les produits dont la catégorie est "Electronics" ou "Clothing". $in: Vérifie si la valeur du champ "category" est dans la liste spécifiée. $group: Groupe les produits par catégorie et calcule la moyenne des prix.
Exemples avec find et findOne
1. find avec $nin pour trouver des produits dont la catégorie n'est pas dans une liste spécifique :
$nin: Vérifie si la valeur d'un champ n'est pas dans une liste donnée. "category": { $nin: ["Home", "Clothing"] }: Trouve des produits dont la catégorie n'est ni "Home" ni "Clothing".
"features": { $nin: ["Waterproof"] }: Trouve un produit qui n'a pas la caractéristique "Waterproof".
Exemples avec delete et deleteOne
1. delete avec $nin pour supprimer des produits dont la catégorie n'est pas dans une liste spécifique :
"category": { $nin: ["Electronics", "Appliances"] }: Supprime des produits dont la catégorie n'est ni "Electronics" ni "Appliances".
"features": { $nin: ["High Resolution Display"] }: Supprime un produit qui n'a pas la caractéristique "High Resolution Display".
Exemples avec update et updateMany
1. update avec $nin pour baisser le prix des produits dont la catégorie n'est pas dans une liste spécifique :
$mul: Multiplie le prix par 0.9 (baisse le prix de 10%). "category": { $nin: ["Electronics", "Clothing"] }: Met à jour le prix des produits dont la catégorie n'est ni "Electronics" ni "Clothing".
$pull: Supprime une caractéristique spécifique ("Smart Technology") de la liste des caractéristiques. "category": { $nin: ["Electronics", "Appliances"] }: Supprime la caractéristique uniquement des produits dont la catégorie n'est ni "Electronics" ni "Appliances".
Exemples avec aggregate
aggregate avec $nin pour calculer la moyenne des prix des produits dont la catégorie n'est pas dans une liste spécifique :
$match: Filtre les produits dont la catégorie n'est ni "Electronics" ni "Clothing". $nin: Vérifie si la valeur du champ "category" n'est pas dans la liste spécifiée. $group: Groupe les produits par catégorie et calcule la moyenne des prix.
Supposons une collection "employees" avec des documents qui ressemblent à ceci :
Exemples avec find et findOne
1. find avec $nin pour trouver des employés dont la position n'est pas dans une liste spécifique :
$nin: Vérifie si la valeur d'un champ n'est pas dans une liste donnée. "position": { $nin: ["Intern", "Consultant"] }: Trouve des employés dont la position n'est ni "Intern" ni "Consultant".
"skills": { $nin: ["Python"] }: Trouve un employé qui n'a pas la compétence "Python".
Exemples avec delete et deleteOne
1. delete avec $nin pour supprimer des employés dont la position n'est pas dans une liste spécifique :
"position": { $nin: ["Manager", "Developer"] }: Supprime des employés dont la position n'est ni "Manager" ni "Developer".
"skills": { $nin: ["Management"] }: Supprime un employé qui n'a pas la compétence "Management".
Exemples avec update et updateMany
1. update avec $nin pour augmenter le salaire des employés dont la position n'est pas dans une liste spécifique :
$mul: Multiplie le salaire par 1.1 (augmente le salaire de 10%). "position": { $nin: ["Intern", "Consultant"] }: Met à jour le salaire des employés dont la position n'est ni "Intern" ni "Consultant".
$pull: Supprime une compétence spécifique ("Java") de la liste des compétences. "position": { $nin: ["Manager", "Developer"] }: Supprime la compétence uniquement des employés dont la position n'est ni "Manager" ni "Developer".
Exemples avec aggregate
aggregate avec $nin pour calculer la moyenne des salaires des employés dont la position n'est pas dans une liste spécifique :
$match: Filtre les employés dont la position n'est ni "Intern" ni "Consultant". $nin: Vérifie si la valeur du champ "position" n'est pas dans la liste spécifiée. $group: Groupe les employés par position et calcule la moyenne des salaires.
Exemples avec find et findOne
1. find avec $or pour trouver des employés dont la position est "Manager" ou qui ont la compétence "Python" :
$or: Au moins une des conditions à l'intérieur de cette clause doit être vraie. { "position": "Manager" }: Trouve des employés dont la position est "Manager". { "skills": "Python" }: Trouve des employés ayant la compétence "Python".
$and: Toutes les conditions à l'intérieur de cette clause doivent être vraies. { "position": "Manager" }: Trouve un employé dont la position est "Manager". { "skills": "Java" }: Trouve un employé ayant la compétence "Java".
"position": { $in: ["Manager", "Developer"] }: Trouve des employés dont la position est "Manager" ou "Developer".
"position": { $nin: ["Intern", "Consultant"] }: Trouve des employés dont la position n'est ni "Intern" ni "Consultant".
$not: Négation logique. $eq: Opérateur d'égalité. "skills": { $not: { $eq: "Python" } }: Trouve des employés qui n'ont pas la compétence "Python".
Exemples avec delete et deleteOne
1. delete avec $or pour supprimer des employés qui sont "Manager" ou qui ont la compétence "Python" :
$or: Au moins une des conditions à l'intérieur de cette clause doit être vraie. { "position": "Manager" }: Supprime des employés dont la position est "Manager". { "skills": "Python" }: Supprime des employés ayant la compétence "Python".
$and: Toutes les conditions à l'intérieur de cette clause doivent être vraies. { "position": "Manager" }: Supprime un employé dont la position est "Manager". { "skills": "Java" }: Supprime un employé ayant la compétence "Java".