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

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Retour d'expérience d'une formation MongoDB pour les développeurs Java,
Un tutoriel de Mickaël Barroux

Le , par Mickael Baron

0PARTAGES

4  0 
La société Arolla, cabinet de conseil en technologies de l'information vous propose un retour d'expérience d'une formation MongoDB pour les développeurs Java.

Pour lire le tutoriel, accéder à : http://arolla.developpez.com/tutorie...loppeurs-java/

N'hésitez pas à mettre vos critiques et impressions par rapport à cet article dans ce forum.

L'équipe Java

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de pcaboche
Rédacteur https://www.developpez.com
Le 13/10/2014 à 11:48
Il faut savoir que chaque document au sein d'une collection a un identifiant unique, par défaut un champ de type ObjectId généré par Mongo. On peut cependant très bien utiliser un ID de notre système d'information à la place (numéro de sécurité sociale pour un individu par exemple).
Désolé, mais ça c'est interdit...

Le numéro de sécurité sociale ne peut être utilisé que dans des cas très précis définis par la loi (paye, frais maladie) et ne peut en aucun cas être utilisé comme identifiant pour un individu.

En particulier, le numéro de sécurité sociale ne fait pas partie de la liste des informations qui doivent figurer dans le registre unique du personnel, fixée par les articles L.620-3 et R. 620-3 du code du travail, (L1221-13 à 15 depuis 2008) et ne doit donc pas être enregistré dans ce cadre.

Le numéro de sécurité sociale d’un employé ne peut donc pas être utilisé comme numéro de matricule unique pour l’identifier dans tous les fichiers de gestion des ressources humaines de son entreprise ou de son administration.
Source : http://www.cil.cnrs.fr/CIL/spip.php?article1434
0  0 
Avatar de landry161
Membre éprouvé https://www.developpez.com
Le 14/10/2014 à 14:05
Je te félicite pour ton tutoriel.
0  0 
Avatar de benjani13
Membre extrêmement actif https://www.developpez.com
Le 26/02/2015 à 13:50
Merci pour ce tuto, je m'initie en ce moment à mongodb et je le trouve donc très intéressant. Cependant, étant très habitué au modèle relationnel j'ai du mal à trouver mes repères et à trouver les bonnes pratiques.

Petite question sur le premier exemple:
Exemple :

Imaginons un blog contenant des posts, chaque post contenant des commentaires. [...]

Avec MongoDB, on va créer des documents qui contiennent un tableau de commentaires (dénormalisation) comme suit :
Code : Sélectionner tout
1
2
3
4
5
6
{
       "_id" : { "$oid" : "5143ddf3bcf1bf4ab37d9c6d" },
       "body" : "Je suis un super post !",
       "post_date" : { "$date" : 1363402227874 },
       "comments" : [
             {
                    "_id": 1,
                    "comment_text": "Je suis le commentaire 1",
                    "author": "Mickael Barroux"
             },
             {
                    "_id": 2,
                    "comment_text": "Je suis le commentaire 2",
                    "author": "Arolla",
             }
       ]
}
Cela sera optimisé pour la récupération des données en lecture. Par contre, revers de la médaille, ce sera un peu plus compliqué dans des cas de mises à jour du nom d'un auteur par exemple (il faudra mettre à jour l'auteur de chaque commentaire écrit par la personne).
Je me posais la même question en regardant le schéma de la base, comment changer le nom de l'auteur si celui ci change son pseudo. On devra boucler sur tous les messages, comparer le champs author (donc comparaison de chaine, plus lent que comparer un id). Existe il une meilleur pratique? Tout ce que je peux imaginer retombe dans un modèle relationnel...

Imaginons aussi qu'un utilisateur a une signature sur ces messages (potentiellement longue). Si la personne a 3000 messages, et qu'il décide d'en changer, on va devoir réécrire 3000 fois sa signature dans la base?

Ma deuxième question porte sur le schéma dynamique de mongodb (le fait de pouvoir rajouter des champs ou des sous collections à certains documents seulement). Comment le gérer efficacement dans son application (comment éviter d'appeler un champs qui n'existe pas)? Avez vous des exemple d'utilisation concrets de cette possibilité?
0  0 
Avatar de youx
Membre du Club https://www.developpez.com
Le 03/03/2015 à 14:15
Le système est optimisé pour la lecture alors oui il faut reparser tout les éléments à changer. Si des éléments varient il doivent appartenir à une autre "colonne" (heu... quel nom donner) avec l'identifiant qui va bien.
0  0