Les opérateurs : $eq,$ne,$gt,$gte,$lt,$lte

Remarque

dans cette partie on va travailler avec la collection produits contenant les documents de type
db.produits.insertOne({
_id:1,
nom:"produit1",
prix:45.2,
quantite:40,
categories:[{
          _id:1,
		  nom:"category1",
		  description:"une description de la catégorie1"
		  },
		  {		  
          _id:2,
		  nom:"category2",
		  description:"une description de la catégorie2"},
		  ],
marque:"marque1",
moisPromotions:["janvier","mars","octobre"],
fournisseurs:{
  _id:1,
  nom:"fournisseur1",
  tel:"0315455"
  }
}
)

1.Opérateur $eq

Afficher la listes des produits dont leur prix =45.2
db.produits.find({"prix":{$eq:45.2}},{})

Remarque

on écrire cette commande sans utilisée $eq
db.produits.find({"prix":45.2},{})
Afficher la liste des marques des produits founis par le founisseur nom=founrisseur1
db.produits.find({"founisseurs.nom":{$eq:"founrisseur1"}},{marque:1})
ou sans $eq
db.produits.find({"founisseurs.nom":"founrisseur1"},{marque:1})

2.Opérateur $ne

$ne: not equal :différent à ...
Afficher la listes des produits sauf ceux du fourniseur fournisseur2
db.produits.find({"fournisseurs.nom":{$ne:"fournisseur2"}},{})

1.Opérateur $gt

$gt: suppérieur à ....
Afficher la liste des produits dont le prix>20
db.produits.find({"prix":{$gt:20}},{})

1.Opérateur $gte

$gt: suppérieur ou égale à ....
Afficher la liste des produits dont le prix>=20
db.produits.find({"prix":{$gte:20}},{})

1.Opérateur $lt

$lt: inférieur ....
Afficher la liste des produits qui sont en répture du stock ,quantite=0
db.produits.find({"quantite":{$lt:1}},{})
ou avec $eq
db.produits.find({"quantite":{$eq:0}},{})
Remarque: $lte: inférieur ou égale

Exemples

{
  _id: 4,
  nom: 'nom4',
  prenom: 'prenom4',
  activites: [
    'sport',
    'music'
  ],
  dateNaissance: 2001-07-02T00:00:00.000Z,
  filiere: {
    _id: 2,
    nom: 'Application Mobile',
    code: 'AM'
  }
}
  • Q1 Comment puis-je trouver tous les stagiaires dans ma collection MongoDB ?
    db.stagiaires.find({})
  • Q2 Quels sont les stagiaires ayant un `_id` égal à 4 ?
    db.stagiaires.find({ _id: 4 })
  • Q3 Comment puis-je obtenir les stagiaires avec le nom "nom4" ?
    db.stagiaires.find({ nom: 'nom4' })
  • Q4 Quels stagiaires ont des activités incluant "music" ?
    db.stagiaires.find({ activites: 'music' })
  • Q5 Comment puis-je trouver les stagiaires avec une date de naissance après 2000-01-01 ?
    db.stagiaires.find({ dateNaissance: { $gt: new Date('2000-01-01') } })
  • Q6 Quels stagiaires ont une filière avec le nom "Application Mobile" ?
    db.stagiaires.find({ 'filiere.nom': 'Application Mobile' })
  • Q7 Comment puis-je récupérer les stagiaires ayant une activité "sport" et une filière "AM" ?
    db.stagiaires.find({ activites: 'sport', 'filiere.code': 'AM' })
  • Q8 Quels sont les stagiaires dont le nom et le prénom sont "nom4" et "prenom4" ?
    db.stagiaires.find({ nom: 'nom4', prenom: 'prenom4' })
  • Q9 Comment puis-je trier les stagiaires par date de naissance croissante ?
    db.stagiaires.find({}).sort({ dateNaissance: 1 })
  • Q10 Quels sont les stagiaires ayant un `_id` différent de 4 ?
    db.stagiaires.find({ _id: { $ne: 4 } })
  • Q11 Comment puis-je limiter la recherche pour obtenir les 5 premiers stagiaires ?
    db.stagiaires.find({}).limit(5)
  • Q12 Quels stagiaires ont des activités qui incluent à la fois "sport" et "music" ?
    db.stagiaires.find({ activites: { $all: ['sport', 'music'] })
  • Q13 Comment puis-je projeter uniquement le nom et le prénom des stagiaires ?
    db.stagiaires.find({}, { nom: 1, prenom: 1, _id: 0 })
  • Q14 Quels sont les stagiaires ayant une filière avec un code différent de "AM" ?
    db.stagiaires.find({ 'filiere.code': { $ne: 'AM' } })
    	
  • Q15 Comment puis-je obtenir les stagiaires avec un nom qui commence par "no" ?
    db.stagiaires.find({ nom: { $regex: /^no/ } })
  • Q16 Quels stagiaires ont une date de naissance entre 2000-01-01 et 2005-12-31 ?
    db.stagiaires.find({ dateNaissance: { $gte: new Date('2000-01-01'), $lte: new Date('2005-12-31') } })
  • Q17 Comment puis-je trier les stagiaires par nom de manière décroissante ?
    db.stagiaires.find({}).sort({ nom: -1 })
  • Q18 Quels sont les stagiaires ayant au moins une activité ?
    db.stagiaires.find({ activites: { $exists: true, $not: { $size: 0 } } })
  • Q19 Comment puis-je obtenir les stagiaires avec un nom qui n'est pas égal à "nom4" ?
    db.stagiaires.find({ nom: { $ne: 'nom4' } })
  • Q20 Quels stagiaires ont une activité "dance" ?
    db.stagiaires.find({ activites: 'dance' })
  • Q21 Comment puis-je projeter tous les champs sauf le champ "prenom" ?
    db.stagiaires.find({}, { prenom: 0 })
  • Q22 Quels sont les stagiaires ayant une filière avec un nom contenant "Mobile" ?
    db.stagiaires.find({ 'filiere.nom': { $regex: /Mobile/ } })
  • Q23 Comment puis-je obtenir les stagiaires avec un nom qui se termine par "4" ?
    db.stagiaires.find({ nom: { $regex: /4$/ } })
  • Q24 Quels stagiaires ont deux activités exactement ?
    db.stagiaires.find({ activites: { $size: 2 } })
  • Q25 Comment puis-je trier les stagiaires par date de naissance décroissante ?
    db.stagiaires.find({}).sort({ dateNaissance: -1 })
  • Q26 Quels stagiaires ont une filière avec un nom commençant par "App" (insensible à la casse) ?
    db.stagiaires.find({ 'filiere.nom': { $regex: /^App/i } })
  • Q27 Comment puis-je obtenir les stagiaires avec un nom qui contient "4" ?
    db.stagiaires.find({ nom: { $regex: /4/ } })
  • Q28 Quels sont les stagiaires ayant une activité différente de "reading" ?
    db.stagiaires.find({ activites: { $ne: 'reading' } })
  • Q29 Comment puis-je projeter uniquement le champ "dateNaissance" des stagiaires ?
    db.stagiaires.find({}, { dateNaissance: 1, _id: 0 })
       
  • Q30 Quels stagiaires ont une date de naissance supérieure à 2001-01-01 et une activité "music" ?
    db.stagiaires.find({ dateNaissance: { $gt: new Date('2001-01-01') }, activites: 'music' })
  • Q31 Comment puis-je obtenir les stagiaires avec un nom qui est une correspondance exacte de "nom4" (insensible à la casse) ?
    db.stagiaires.find({ nom: { $regex: /^nom4$/i } })
  • Q32 Quels sont les stagiaires ayant plus de 2 activités ?
    db.stagiaires.find({ activites: { $size: { $gt: 2 } })
  • Q33 Comment puis-je trier les stagiaires par nom, puis par prénom, de manière croissante ?
    db.stagiaires.find({}).sort({ nom: 1, prenom: 1 })
  • Q34 Quels stagiaires ont une filière avec un code égal à "AM" et un nom différent de "Application Mobile" ?
    db.stagiaires.find({ 'filiere.code': 'AM', 'filiere.nom': { $ne: 'Application Mobile' } })
  • Q35 Comment puis-je obtenir les stagiaires avec un prénom qui commence par "pre" (insensible à la casse) ?
    db.stagiaires.find({ prenom: { $regex: /^pre/i } })
  • Q36 Quels sont les stagiaires ayant au moins une activité différente de "music" ?
    db.stagiaires.find({ activites: { $ne: 'music' } })
  • Q37 Comment puis-je projeter uniquement le champ "activites" des stagiaires ?
    db.stagiaires.find({}, { activites: 1, _id: 0 })
  • Q38 Quels stagiaires ont une date de naissance avant 1990-01-01 ou après 2005-12-31 ?
    db.stagiaires.find({ $or: [{ dateNaissance: { $lt: new Date('1990-01-01') } }, { dateNaissance: { $gt: new Date('2005-12-31') } }] })
  • Q39 Comment puis-je obtenir les stagiaires avec un nom contenant "nom" et un prénom contenant "prenom" (insensible à la casse) ?
    db.stagiaires.find({ $and: [{ nom: { $regex: /nom/i } }, { prenom: { $regex: /prenom/i } }] })
  • Q40 Quels sont les stagiaires ayant un nom ou un prénom commençant par "n" ?
    db.stagiaires.find({ $or: [{ nom: { $regex: /^n/i } }, { prenom: { $regex: /^n/i } }] })