IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ MongoDBConsultez toutes les FAQ

Nombre d'auteurs : 1, nombre de questions : 331, dernière mise à jour : 18 décembre 2016  Ajouter une question

 

Cette FAQ a été réalisée à partir de la documentation officielle de Mongodb, des questions fréquemment posées sur les forums NoSQL Developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.

SommaireMongoDB pour développeurs d'applicationsComment faire une requête sur les champs qui ont des valeurs nulles ? (4)
précédent sommaire suivant
 

Des opérateurs de requête différents traitent différemment les valeurs null.

Considérez le test des collections avec les documents suivants :

Code javascript : Sélectionner tout
1
2
{ _id: 1, cancelDate: null } 
{ _id: 2 }

Mis à jour le 11 décembre 2016

La requête { cancelDate: null } correspond aux documents qui contiennent le champ cancelDate dont la valeur est nullou ne contiennent pas le champ cancelDate. Si l'indice recherché est composé, cependant, la requête correspondra uniquement aux valeurs null et pas aux champs manquants.

Modifié dans la version 2.6 : si vous utilisez l'indice composé dans un résultat incomplet, MongoDB n'utilisera pas l'index, sauf si un hint() spécifie explicitement l'indice. Voir Indices composés pour plus d'informations.

Compte tenu de la requête suivante :

Code javascript : Sélectionner tout
db.test.find( { cancelDate: null } )
Celle-ci retournera les deux documents :

Code javascript : Sélectionner tout
1
2
{ "_id" : 1, "cancelDate" : null } 
{ "_id" : 2 }

Mis à jour le 11 décembre 2016

La requête { cancelDate: { $type: 10 } } correspond uniquement aux documents qui contiennent le champ cancelDate dont la valeur est null ; par exemple, la valeur de cancelDate est de Type BSON Null (par exemple 10) :

Code javascript : Sélectionner tout
db.test.find( { cancelDate : { $type: 10 } } )
La requête retourne uniquement le document qui contient la valeur null :

Code javascript : Sélectionner tout
{ "_id" : 1, "cancelDate" : null }

Mis à jour le 11 décembre 2016

La requête { cancelDate: { $exists: false } } correspond aux documents qui ne contiennent pas le champ cancelDate :

Code javascript : Sélectionner tout
db.test.find( { cancelDate : { $exists: false } } )
La requête retourne uniquement le document qui contient la valeur null :

Code javascript : Sélectionner tout
{ "_id" : 2 }
Voir aussi la documentation de référence des opérateurs $type et $exists.

Mis à jour le 11 décembre 2016

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.