Les opérateurs : $exits,$type

1.Opérateur $exists

Permet de vérifier si un attribut existes parmis les champs d'un document
Exemple:
Afficher la liste des produits qui n'ont pas de marque
db.produits.find({"marque":{$exists:false}},{})

Remarques

Remarque:1
$exists:false :c'ést à dire que le champs n'existe pas et Non que le champs est vide Remarque2:
On peut ajouter des conditions avec $exits pour le meme champs
Afficher la liste des produits qui ont le champs prix et doit etre >10
db.produits.find({"prix":{$exists:true,$gt:10}},{})

2.Opérateur $type

$type: vérifier le type de la valeur d'un attribut d'un document
Vérifier si le type de l'attribut prix est double
db.produits.find({prix:{$type:"double"}},{})

Les types de données dans MongoDB

MongoDB traite les données de types: integer,boolean,double,string,arrays,object,null,date,undefined,timestamp,ObjectId,

1.integer

integer: un nombre entier de 32 bits
{ age:18, quantite:48 ... }

2.double

double: un nombre réel de 64 bits
{ prix:145.2, note:4.5 ... }

3.string

string: une chaine de caractères
{ nom:"nom1", adresse:"adresse" ... }

4.boolean

boulean: a deux valeurs true ou false
{ present:true, validation:false ... }

5.array

array: la valeur d'un attribut est un tableau de type primitives (integer,double, string..) ou des objets
{
	villes:["rabat","casa","dakhla"],
	listeGroupes:[
	{ _id:1,
	  nom:"groupe1",
	  filiere:"filiere1"
		
	},
	...
	]
	
	
}

6.object

object: la valeur d'un attribut est un objet {clé:valeur,clé:value}
{ fournisseur:{ _id:1, nom:"nom", tel:"04547" } }

7.null

null: la valeur d'un attirbut est Egale à Null (valeur n'existe pas)
{ age:null, nom:null ... }

7.undefined

undefined: la valeur d'un attirbut n'est pas reconnue (valeur existe mais non reconnue)
{ age:undefined, villes:undefined ... }