show collections ;
var coll = db . get Collections ()
for ( var i = 0; i < coll . length ; i ++) {
db . coll [ i ]. find () ;
}
db . employes . find () ;
db . employes . find () . count () ;
db . employes . insert ({ nom : ' Alan ', prenom : ' Joe ', anciennete : 10 }) ;
db . employes . save ({ nom : ' Wick ', prenom : ' John ', prime : 150 }) ;
db . employes . find ({ prenom : ' David '}) ;
db . employes . find ({ prenom :/^ D .* |.* D
$
/}) ;
ATELIER 1
Exercice 1
E
´
crire
les
requ
ˆ
etes
MongoDB
qui
p
ermetten
t
de
:
1.
afficher toutes les collections de la base
2.
afficher tous les documents de la base
ou
si
la
base
de
donn
´
ees
con
tien
t
une
seul
e
collection
3.
compter le nombre de documents de la collection employes
4.
ins
´
erer
de
deux
mani
`
eres
di
ff
´
eren
tes
deux
empl
o
y
´
es
a
v
ec
les
c
hamps
nom
,
pr
´
enom
et
soit
prime
soit
anciennet
´
e
5.
affi
c
her
la
liste
des
emplo
y
´
es
don
t
le
pr
´
enom
est
David
6.
affi
c
her
la
liste
des
emplo
y
´
es
don
t
le
pr
´
enom
commence
ou
se
termine
par
D
db . employes . find ({ prenom : /^ D[ a - z ]{ 4}
$
/}) ;
db . employes . find ({ prenom :/^ D /}) . for Each (
function ( p){
if ( p. prenom . length == 5) {
print ( p. prenom )
}
})
db . employes . find ({ prenom : /^[ AEIOUY ].*[ aeiouy ]
$
/}) ;
db . employes . find () . for Each ( function ( p){
let pre = p. prenom . to Lower Case () ;
if ( pre . substr (0 ,1) == pre . substr ( pre . length -1 ,1) ){
print ( pre )
}
})
db . employes . find (
{ anciennete :{
$
gt :10}} ,
{ _id :0 , nom :1 , prenom :1}
);
db . employes . find (
{ ' adresse . rue ': {
$
exists : true } },
{ nom :1 , adresse :1}
);
db . employes . update Many (
{ prime :{
$
exists : true }} ,
{
$
inc :{ prime : 200 }}
);
db . employes . update (
{ prime :{
$
exists : true }} ,
{
$
inc :{ prime : 200}} ,
{ multi : true }
)
7.
affi
c
her
la
liste
des
p
ersonnes
don
t
le
pr
´
enom
commence
par
D
et
con
tien
t
exactemen
t
5
lettres
ou
8.
affi
c
her
la
liste
des
p
ersonnes
don
t
le
pr
´
enom
commence
et
se
termine
par
une
v
o
y
elle
9.
affi
c
her
la
liste
des
p
ersonnes
don
t
le
pr
´
enom
commence
et
se
termine
par
une
m
ˆ
eme
lettre
10.
affi
c
her
les
nom
et
pr
´
enom
de
c
haque
emplo
y
´
e
a
y
an
t
une
anciennet
´
e
>
10
11.
affi
c
her
les
nom
et
adresse
compl
`
ete
des
em
plo
y
´
es
a
y
an
t
un
attribut
rue
dans
l’objet
adresse
12.
in
cr
´
emen
ter
de
200
la
prime
des
emplo
y
´
es
a
y
an
t
d
´
ej
`
a
le
champ
prime
ou
db . employes . find ({ anciennete : {
$
exists : true }} , { _id : 0})
. sort ({ anciennete : -1})
. limit (3) ;
db . employes . find (
{ ' adresse . ville ': ' Toulouse '},
{ nom :1 , prenom :1 , anciennete :1 , _id :0}
);
db . employes . find ({
$
and : [
{ prenom : /^ M/} ,
{
$
or : [
{ ' adresse . ville ': ' Foix '},
{ ' adresse . ville ': ' Bordeaux '}
]
}
]
}) ;
db . employes . find ({
{
prenom : {
$
regex : /^ M .*/} ,
" adresse . ville ": {
$
in : [" Foix " , " Bordeaux "]
}
}
);
db . employes . update (
{ prenom : ' Dominique ', nom : ' Mani '},
{
$
set : {
' adresse . numero ' : 20 ,
' adresse . ville ' : ' Marseille ',
' adresse . codepostal ' : ' 13015 '
},
$
unset :
{ ' adresse . rue ' : 1}
}
);
13.
affi
c
her
les
trois
premi
`
eres
p
ersonnes
a
y
an
t
la
plus
grande
v
aleu
r
d’anciennet
´
e
14.
re
group
er
les
p
ersonnes
don
t
la
ville
de
r
´
esidence
est
Toulouse
(affic
her
nom
,
pr
´
enom
et
anciennet
´
e
)
15.
affi
c
her
les
p
ersonnes
don
t
le
pr
´
enom
commence
par
M
et
la
ville
de
r
´
eside
nce
est
soit
Foix
soit
Bordeaux
ou
16.
m
ettre
a
`
jour
l’adresse
de
Dominique
Mani
:
nouv
elle
adresse
(
{
n
umero
:
20,
ville
:
’Marseille’,
codepostal : ’13015’
}
). Attention, il n’y aura plus d’attribut rue dans adresse
db . employes . update Many (
{
$
and :
[
{" adresse . ville ":
{
$
nin :[ " Paris " ," Toulouse " ," Bordeaux " ]}
},
{ prime :{
$
exists : false }}
]
},
{
$
set :{ prime : 1500 }}
);
db . employes . find ({ tel : {
$
exists : true }} , {}) . for Each (
function ( t) {
db . employes . update Many (
{ _id : t. _id },
{
$
push :{ telephone : t. tel },
$
unset :{ tel :1}
}
);
}
}
db . employes . find ({ prime : {
$
exists : 0 }}) . for Each (
function ( doc ){
var length = doc . adresse . ville . length ;
var new Prime = 100* length ;
db . employes . update (
{ _id : doc . _id },
{
$
inc :
{ prime : new Prime }
}
);
}
);
17.
at
tribuer
une
prime
d
e
1
500
a
`
tous
les
emplo
y
´
es
n’a
y
an
t
pas
de
prime
et
don
t
la
ville
de
r
´
esidence
est
di
ff
´
eren
te
de
T
oulouse,
Bordeaux
et
P
aris.
18.
re
mplacer
le
champ
tel
,
p
our
les
do
cumen
ts
a
y
an
t
un
champ
tel),
par
un
tableau
nomm
´
e
t
´
el
´
ephone
con
tenan
t
la
v
aleur
du
champ
tel
(
le
champ
tel
est
`
a
supprimer
)
19.
cr
´
eer
un
champ
prime
p
our
les
do
cumen
ts
qui
n’en
disp
osen
t
pas
et
de
l’a
ff
ecter
a
`
100
*
nom
bre
de
caract
`
ere
du
nom
de
la
ville
20.
cr
´
eer
un
champ
mail
don
t
la
v
aleur
est
´
egale
soit
a
`
n
om.pr
´
enom@format
ion.fr
p
our
les
emplo
y
´
es
ne
disp
osan
t
pas
d’un
champ
t
´
el
´
ephone,
soit
a
`
pr
´
enom
.nom@formation.fr
(
nom
et
pr
e
nom
son
t
a
`
remplacer
par
les
vraies
v
aleurs
de
c
haque
emplo
y
´
e)
db . employes . find () . for Each (
function ( p){
if ( p. has Own Property (" telephone ") == true ){
db . employes . update ({ _id : p. _id } ,{
$
set :{ email : p.
prenom +"." +p. nom +" @ formation . fr " }}) ;
}
else {
db . employes . update ({ _id : p. _id } ,{
$
set :{ email : p.
nom +"." +p. prenom +" @ formation . fr " }}) ;
}
}
);
db . employes . aggregate (
{
$
group :
{
_id : '
$
prenom ',
anciennete Cum : {
$
sum : '
$
anciennete '}
}
},
{
$
sort : { _id : 1}}
);
ou
21.
calculer
et
affic
her
la
s
o
mme
de
l’anciennet
´
e
p
our
les
em
plo
y
´
es
disp
osan
t
du
m
ˆ
eme
pr
´
enom
db . employes . find () . for Each (
function ( p) {
var email = p. nom + '. ' + p. prenom + ' @ formation . fr '
;
if ( p. telephone )
var email = p. prenom + '. ' + p. nom + ' @ formation
. fr ';
db . employes . update Many (
{ _id : p. _id },
{
$
set :{ mail : email }}
);
}
);
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!