0% ont trouvé ce document utile (0 vote)
7 vues7 pages

Introduction à MongoDB et NoSQL

Le document fournit un guide sur l'installation et l'utilisation de MongoDB, y compris des instructions pour configurer l'environnement et des exemples de commandes CRUD. Il aborde également des concepts avancés tels que l'agrégation, les index géospatiaux et la validation des données. Enfin, il mentionne des ressources documentaires et des conseils pour une évaluation sur le sujet.

Transféré par

Nax B
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues7 pages

Introduction à MongoDB et NoSQL

Le document fournit un guide sur l'installation et l'utilisation de MongoDB, y compris des instructions pour configurer l'environnement et des exemples de commandes CRUD. Il aborde également des concepts avancés tels que l'agrégation, les index géospatiaux et la validation des données. Enfin, il mentionne des ressources documentaires et des conseils pour une évaluation sur le sujet.

Transféré par

Nax B
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

29/09/2021

Base de données NOSQL (MONGODB)

MongoDB university
Install MONGO DB sur le site internet official (package MSI)

Aller dans « modifier les variables » sur la barre de recherche Windows

Cliquer sur « variable d’environnement »

Et faire les modifs dans « path »

Ajouter le chemin vers du disque local :C qui suit vers MongoDB Tools/ Server jusqu’à « Bin »

Dans le CMD tester la commande : « mongo - -version »

Exemple de base de données MONGODB

Mongo Atlas : visualiser les bases de données, modifier et gérer les bases.

Mongo Atlas -> Collections -> sample training ou sample_training posts (ce sont des documents)

Les documents ont tous une propriété underscore ( _id )

Pourquoi MongoDB ? Gestionnaire de base de données, très permissif, SGBD (système de gestion de base de
données) orienté document, la puissance et la simplicité à traité les données, permettre de faire des
agrégations pour filtrer/modifier les données et mettre à jour les bases.
C’est possible de faire cela avec MongoDB mais ce n’est pas conseiller

Format JSON toujours en double guillemet dans les collections

Exercices :

1. Pour entrer dans le file des données :

mongoimport --db newyork --collection restaurants --file "C:\Users\rooks\OneDrive\Documents\Efrei\Exo


Christophe\MongoDB\data\[Link]" dans le PowerShell

2. Méthode CRUD (Create, Read, Update et Delete) – MQL MongoDB Query Language

Taper : mongo -> show dbs -> use videoclub -> [Link]

show collection -> [Link](« films »)

[Link](

« titre » : « lord of the rings »,

« durée » : 186,

},

« titre » : « Star Wars »,

« durée » : 165,

},
]

-> [Link] -> [Link]().pretty() pour voir ce qu’il y a dans chaque variable

-> [Link]({ … })

-> [Link]().count()

-> [Link]().limits()

-> [Link]({« titre » : « la grande vadrouille »}, { $set : {« durée » : 665},


$currentDate : {lastModified : true} })

-> [Link]({« titre » : « Matrix Reloaded »}, {$set : {« [Link] » :


« l’Hermite », « [Link] » : « Thierry »}})

-> [Link]()

-> [Link]()

Champs addFields : ajouter un champs

Créer des variables dans le Shell de mongo :

const today = new Date().toLocaleDateString('fr-FR');


[Link]({
"titre": "test variables",
"durée": today
}
)

Query operations : Query and Projection Operators — MongoDB Manual

IT : pour afficher le reste des résultats

Les Indexes en base de données sont existantes pour faciliter la recherche lors de la requête grâce au scan de
collections lors de grande base de données (ex : [Link]({ items : 1, quantity : 1 }, {name :
« … »} ) )

mongoimport --db paris --collection piscines --file "./data/piscines_paris.json" - -drop (afin de rajouter le bon
file dans une db)

MQL = MongoDB Query Language

1) Database -> db<method>


2) Collections -> [Link]()
3) Cursor -> [Link]().count()
Le pipeline d’agrégation :

(Tuyau qui sert à modifier ou filtrer les données pour ensuite ouvrir ses branches vers d’autre branches)

1) Mettre à jour la collection avec une agrégation


2) Le stage d’agrégation $geoNear :
a) Compréhension, création et utilisation de l’index de types « 2d » et « 2dsphere »
b) Utilisation de $geoNear pour filtrer des documents par leur position géospatial

- Etapes (« stages ») :

$match() – $group() – $limit() – $sort() - $project() - $geoNear() - $count() - $skip()

- Opérateurs (« operators ») :

$avg - $max - $and - $or - $not - $eq - $lt / $lte - $gt / $gte - $sum ( … )

- Utilisations :
Syntaxe :

[Link]( [

{ <stage> : {operator} }

( … ) -> autre stages

])

Exemple :

[Link]( [

{ $match : {« zipCode » : 75013}},

{ $sort : {« name » : 1}},

{ $group : {« _id » : « $zipCode »,

« number » : {$sum :1}},

{ $project : {« _id : 0 »}}

])

Near = retourne les docs de la collections du plus proche à la plus éloignées, au préalable lui créer un index.

Pour créer l’index :

- Entrer dans la base de données ([Link])


[Link]( { ‘geometry ‘ : « 2sphere » }, {« name » : « 2geoIndex », « 2dsphere »} })
$geoNear (agrégation) ou $near

But : Calculer la distance entre 2 points dans l’espace en s’appuyant sur les coord. (latitudes &
longitude).

Attention ! : REQUIERT la création préalable d’un index « 2d » ou « 2dsphere » pour fonctionner !!!
[Link]({<champ GeoJson> : {type : « Point », coordinates :<lon>, <lat>}})

Syntaxe : {$near : {

$geometry : {

type : « Point », (ou [Link])

coordinates : [<longitudes>, <latitudes>]

},

[ options ]

14/10/2021

1) $setOnInsert : définir les infos d’un nouveau documents


updateMany({« zipCode » : 75013 }, {$set : {« propre » : true}}, {upsert : true})
{$setOnInsert : {« name » : « Toto », « city » : « Paris »}
2) Validator :
a. $jsonSchema : validation des données à partir d’un document JSON
b. B_ avec expression : validation des données à partir d’une expression
3) MongoCharts : démarrage & utilisation (heatmap)

Définitions :

$ = valeur

{ } = toutes les données

Int = Number (integer)

[Link]() : pour savoir ce qu’il y a dans une collection

[Link] : supprime la collection

[Link] : supprime la base de données

validationLevel : « Strict » ou « moderate »

validationError ou warn
Documentation :

- $merge (aggregation) — MongoDB Manual


- $geoNear (aggregation) — MongoDB Manual
- Aggregation Pipeline Operators — MongoDB Manual
- Download MongoDB Command Line Database Tools | MongoDB
- Calculate Distance by Latitude and Longitude using JavaScript | GeoDataSource
- Site de Regex : REGEX101 ou Regular Expressions Cheat Sheet - Almost Perfect Email Regex
- [Link]() — MongoDB Manual
- [Link]() — MongoDB Manual

Evaluation 15/10 de 14h à 17h : 11 questions sur nos connaissance de la doc et exos, pas de GeoNear, bien
relire les questions il n’y a pas de faute de frappe (renvoyer le fichier à compléter en message privé et
changer le nom du fichier pour y ajouter nom et prénom)
Comment exécuter cette fonction ? (programmation fonctionnel)

function A(arg1, arg2) {

return function (arg3) {

return function (arg4) {

[Link](arg1, arg2, arg3, arg4)

Connect mongo compass a vs code : « mongodb+srv (CLUSTER mongo Atlas => mongo Compass)

Après avoir remove une collections et vouloir réimporter : mongoimport --db mondial --
collection seas --file './data/[Link] --drop

Common questions

Alimenté par l’IA

When using aggregation operators like $merge and $geoNear, considerations include ensuring appropriate indexing for performance, especially with $geoNear, which requires a '2d' or '2dsphere' index. $merge should be used carefully to avoid overwriting or creating unintentional data, as it outputs results into a collection. Understanding these operators' impact on data and resources is crucial for effective use .

The mongoimport command is a tool for importing data into MongoDB from JSON, CSV, or TSV files. Essential parameters include --db to specify the target database, --collection to designate the collection name, and --file to indicate the file path of the data to import. The --drop option can be used to delete the existing collection before importing, ensuring the importation of up-to-date data .

MongoDB can be integrated with development environments like VS Code by using MongoDB Atlas, which provides a cloud-based database solution. MongoDB Compass can be used to visualize data in Atlas. Developers can connect to the MongoDB Atlas cluster from VS Code by using the connection string in the format 'mongodb+srv://'. This integration allows for seamless data management and development processes within the VS Code environment .

MongoDB's aggregation pipeline is used to process data in stages, each performing successive operations. It allows modifications and filtering of data to create complex aggregations. Typical stages include $match for filtering documents, $group for aggregating data, $sort for ordering data, $project for reshaping documents, $geoNear for geospatial filtering, and others. This step-by-step processing enables efficient data transformation and analysis .

In MongoDB, CRUD operations (Create, Read, Update, Delete) are fundamental for data manipulation. These operations are executed using MongoDB Query Language (MQL). For example, to insert data, db.collection.insert() is used; to read, db.collection.find(); to update, db.collection.updateOne() or db.collection.updateMany(); and to delete, db.collection.deleteMany(). MQL provides a straightforward interface for managing documents in collections .

MongoDB offers the advantage of being a document-oriented database management system that is very permissive, powerful, and simple to handle data. It supports operations like CRUD (Create, Read, Update, Delete), aggregation pipelines for filtering and modifying data, and various indexing strategies for efficient data retrieval. MongoDB Query Language (MQL) is used for querying and includes operators such as $match, $group, $limit, and $geoNear for geospatial queries .

The $setOnInsert operator in MongoDB is appropriate when performing an upsert operation, where new fields should be set only if a new document is inserted. It functions by setting specified fields during an insert action, but these fields remain unchanged if the update action modifies an existing document. This is useful for initializing values in new documents without affecting existing ones .

Validation schemas in MongoDB ensure that inserted or updated documents conform to specific formats. The $jsonSchema operator allows defining rules based on JSON standards. MongoDB supports different levels of validation: 'strict', where invalid documents are rejected, and 'moderate', where documents are logged with warnings instead of being rejected. These levels help maintain data integrity while providing flexibility in enforcing constraints .

Indexes in MongoDB are significant for enhancing query performance by reducing the query execution time. They allow MongoDB to traverse indexed fields rapidly, rather than scanning every document in a collection. Common index types include single field, compound, and geospatial (for queries on location-based data). These indexes significantly improve data retrieval efficiency in large datasets .

Geospatial indexing in MongoDB allows for efficient querying of spatial data. To implement a geospatial query using $geoNear, one must first create a geospatial index, such as a '2d' or '2dsphere' index, on the coordinates field of the collection. This index allows queries like $geoNear to filter and sort documents based on their proximity to a specified point, relying on latitude and longitude coordinates for calculations .

Vous aimerez peut-être aussi