Salta el contingut

DAM - DAW - MP 0484 Bases de Dades

Carrega la següent Col·lecció i busca la solució a les següents preguntes:

db.llibres.drop()
db.llibres.insertOne(
    {
        _id: 1,
        titol: 'El aleph',
        autor: 'Borges',
        editorial: ['Siglo XXI','Planeta'],
        preu: 20,
        quantitat: 50
    }
)
db.llibres.insertOne(
    {
        _id: 2,
        titol: 'Martin Fierro',
        autor: 'Jose Hernandez',
        editorial: ['Siglo XXI'],
        preu: 50,
        quantitat: 12
    }
)
db.llibres.insertOne(
    {
        _id: 3,
        titol: 'Aprenda PHP',
        autor: 'Mario Molina',
        editorial: ['Siglo XXI','Planeta'],
        preu: 50,
        quantitat: 20
    }
)
db.llibres.insertOne(
    {
        _id: 4,
        titol: 'Java en 10 minutos',
        editorial: ['Siglo XXI'],
        preu: 45,
        quantitat: 1
    }
)

Actualitzacions

db.collection.updateOne(query, update, options)
db.collection.updateMany(query, update, options)
  1. Modifiquem el preu i la quantitat del llibre d’identificador 1

    Possible solució
    db.llibres.updateOne(
        { _id : { $eq:1 }} ,
        { $set : { preu:15, quantitat:1 } }
    )
    db.llibres.find()
    
  2. Afegim un camp al llibre que té identificador 4

    Possible solució
    db.llibres.updateOne(
        {_id: {$eq:4}} ,
        {$set : {descripcio: 'Cada unitat tracta un tema fonamental de Java des de 0.'} }
    )
    db.llibres.find()
    
  3. Treiem el camp descripcio al llibre que té identificador 4

    Possible solució
    db.llibres.updateOne(
        {_id : {$eq:4}} ,
        {$unset : {descripcio:""} }
    )
    db.llibres.find()
    

    El valor que hem posat a descripcio no es té en compte

    Si hagéssim posat set valor = '' no hagés desaparegut el camp

  4. Afegim una editorial al llibre d’identificador 1. editorial` és un camp de tipus array

    Possible solució
    db.llibres.updateOne(
        {_id : {$eq:1}} ,
        {$push : {editorial:'Atlàntida'} }
    )
    db.llibres.find()
    

    Amb la comanda $addToSet en comptes de $push, NO s’afegiran valors repetits

  5. Per treure un valor de l’array utilitzem $pull

    Possible solució
    db.llibres.updateMany(
        {_id : {$eq:1}} ,
        {$pull : {editorial:'Atlàntida'} }
    )
    db.llibres.find()
    
  6. Incrementem el preu de tots els llibres en 10€. ($inc en comptes de $set)

    Possible solució
    db.llibres.updateMany(
        { },
        {$inc: { preu : 10 }}
    )
    db.llibres.find()
    
  7. Incrementem el preu en un 10% (multipliquem per 1.1)

    Possible solució
    db.llibres.updateMany(
        { } ,
        { $mul : { preu: 1.1 } }
    )
    db.llibres.find()