Documents#
- Un document est un ensemble de paires clé-valeur.
- Les documents ont un schéma dynamique.
Le schéma dynamique signifie que :
- les documents d'une même collection ne doivent pas nécessairement avoir le même ensemble de champs ou la même structure,
- les champs communs des documents d'une collection peuvent contenir différents types de données.
Types de données#
Primitifs#
- String: This is the most commonly used datatype to store the data. String in MongoDB must be UTF-8 valid.
- Integer: This type is used to store a numerical value. Integer can be 32 bit or 64 bit depending upon your server.
- Boolean: This type is used to store a boolean (true/ false) value.
- Double: This type is used to store floating point values.
- Null: This type is used to store a Null value.
Types de données#
Objets#
- Min/Max Keys: This type is used to compare a value against the lowest and highest BSON elements.
- Arrays: This type is used to store arrays or list or multiple values into one key.
- Timestamp: ctimestamp. This can be handy for recording when a document has been modified or added.
- Object: This datatype is used for embedded documents.
- Date: This datatype is used to store the current date or time in UNIX time format. You can specify your own date time by creating object of Date and passing day, month, year into it.
Types de données#
Complexes#
- Object ID: This datatype is used to store the document’s ID.
- Binary data: This datatype is used to store binary data.
- Code: This datatype is used to store JavaScript code into the document.
- Regular expression: This datatype is used to store regular expression.
- Symbol: This datatype is used identically to a string; however, it's generally reserved for languages that use a specific symbol type.
Structure des documents#
- Les documents présents dans une collection n’ont pas de schémas prédéfinis.
- Si nous souhaitons avoir une idée de ce que contient la collection, il est possible d’afficher un document (le premier trouvé), avec findOne(). Cette opération permet de comprendre la structure global d’un document, même s’il peut y avoir des différences entre documents.
db.restaurants.findOne()
Valeurs prises par les itemps#
Une autre fonction très utile pour mieux appréhender les données est de lister les valeurs prises par les différents items de la collection, grâce à distinct(). Pour spécifier un sous-item d’un item, il est nécessaire d’utiliser le formalisme item.sousitem.
db.restaurants.distinct("borough")
db.restaurants.distinct("cuisine")
db.restaurants.distinct("address.zipcode")
db.restaurants.distinct("grades.grade")