- Adicione 4 usuários à sua coleção usuários com nome “pedro”, “alice”, ”maria” e “joao”. Os outros atributos são de sua escolha
Na atividade anterior foi feito.
- Adicione 3 posts para Pedro e 2 posts para Maria. Atributos texto e likes são de sua escolha e cid começa vazio ( [] )
pedro = db.usuarios.findOne({email:"[email protected]"});
db.posts.insert({texto:"Texto 1", likes:10, uid:pedro._id, cid:[]});
WriteResult({ "nInserted" : 1 })
db.posts.insert({texto:"Texto 2", likes:8, uid:pedro._id, cid:[]});
WriteResult({ "nInserted" : 1 })
db.posts.insert({texto:"Texto 3", likes:22, uid:pedro._id, cid:[]});
WriteResult({ "nInserted" : 1 })
maria = db.usuarios.findOne({email:"[email protected]"});
db.posts.insert({texto:"Texto 4", likes:50, uid:maria._id, cid:[]});
WriteResult({ "nInserted" : 1 })
db.posts.insert( {texto:"Texto 5", likes:100, uid:maria._id, cid:[]});
WriteResult({ "nInserted" : 1 })
- Adicione 2 comentários para um post de Pedro e mais 1 comentário para um post de Maria
postPedro = db.posts.findOne({_id: ObjectId("5af1f5efba6140a17e42ab43")});
var coment1 = {texto: "Comentário 1", pid:postPedro._id, uid:postPedro.uid};
maria = db.usuarios.findOne({email:"maria@maria"});
joao = db.usuarios.findOne({email:"joao@joao"});
var coment2 = {texto: "Comentário 2", pid:postPedro._id, uid:joao._id};
var coment3 = {texto: "Comentário 3", pid:postPedro._id, uid:maria._id};
db.comentarios.insert(coment2);
WriteResult({ "nInserted" : 1 })
db.comentarios.insert(coment3);
WriteResult({ "nInserted" : 1 })
db.comentarios.find().pretty();
postMaria = db.posts.findOne({_id:ObjectId("5af1f776ba6140a17e42ab46")});
var coment4 = {texto: "Comentário 4", pid:postMaria._id, uid:joao._id};
db.comentarios.insert(coment4);
WriteResult({ "nInserted" : 1 })
db.comentarios.find().pretty();
db.posts.find().pretty();
comentarioPedro1 = db.comentarios.findOne({_id:ObjectId("5af1fbedcd48e5bdd21ddfb4")});
comentarioPedro2 = db.comentarios.findOne({_id:ObjectId("5af1fbf5cd48e5bdd21ddfb5")});
postPedro.cid.push(comentarioPedro1._id);
postPedro.cid.push(comentarioPedro2._id);
db.posts.update({_id:postPedro._id}, postPedro);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
comentarioMaria1 = db.comentarios.findOne({_id:ObjectId("5af1fc85cd48e5bdd21ddfb6")});
postMaria.cid.push(comentarioMaria1._id);
db.posts.find().pretty();
db.posts.update({_id:postMaria._id}, postMaria);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
db.posts.find().pretty();
a. Obtenha todos os comentários de um dado post
db.comentarios.find({_id:{"$in": postPedro.cid}});
b. Obtenha todos os posts que tenham mais de 10 likes
db.posts.find({likes:{"$gt": 10}});
c. Obtenha todos os posts que não tem comentários
db.posts.find({cid: {"$eq":[ ]}});
d. Obtenha todos os posts que pelo menos 2 comentários
e. Obtenha todos os posts de Pedro
db.posts.find({uid: ObjectId("5ae3c425812a0a96601e1c61")}).pretty();
f. Obtenha todos os posts de Pedro que não tenha comentários
var criterio = {"$and": [{uid: ObjectId("5ae3c425812a0a96601e1c61")}, {cid: [ ]}]};
db.posts.find(criterio).pretty();
g. Obtenha todos usuários que tenham posts que tenham comentários