Resgatar vários documentos "embedados"

28 views
Skip to first unread message

Lucas Zerma

unread,
Sep 23, 2013, 3:58:44 PM9/23/13
to nos...@googlegroups.com
Boa Tarde galera,

Sou novo no mundo NoSQL e com isso vem algumas dificuldades.

A que eu estou tendo no momento e a seguinte:

Preciso resgatar todos os documentos que estão aninhados a um documento principal puxando somente os que coincidem com o mes informado no filtro (obs o mes está no documento aninhado).

O objeto:

{
"_id" : ObjectId("52408b9a8a9fbb55368b4567"),
"cod" : NumberLong(1),
"cod_loja" : "13",
"fornecedor" : [
{
"nome" : "XXXXX",
"mes" : NumberLong(3),
"aprovado" : 8337.56755
},
{
"nome" : "AAAAAA",
"mes" : NumberLong(9),
"aprovado" : 1046.68
},
{
"nome" : "XXXXX",
"mes" : NumberLong(9),
"aprovado" : 414.78
},
{
"nome" : "CCCCCCCC",
"mes" : NumberLong(9),
"aprovado" : 473.8
},
{
"nome" : "BBBBBBB",
"mes" : NumberLong(9),
"aprovado" : 164.16
}
],
"mes_anterior" : [
{
"mes" : NumberLong(9),
"realizado" : 0,
"aprovado" : 183605.3658499999,
"cancelado" : 0
}
],
"total_cancelado" : 11975.09128,
"total_realizado" : 592055.7002599995
}

O Comando:
db.aaaaa.find({"cod" : 1}, {"fornecedor" : {$elemMatch: {"mes" : 9} }})


O Resultado:

{
"_id" : ObjectId("52408b9a8a9fbb55368b4567"),
"fornecedor" : [
{

"nome" : "AAAAAA",
"mes" : NumberLong(9),
"aprovado" : 1046.68 ]
}


Por favor galera, me ajude.. UAHEHUAE to desesperado já!

Fico no aguardo....

Suissa

unread,
Sep 24, 2013, 1:06:58 AM9/24/13
to nosqlbr
Acho que nesse caso vc deveria usar o agregate pois o positional operator só vai retornar o primeiro elemento que achou.


--
http://twitter.com/nosqlbr
http://facebook.com/nosqlbr
http://www.nosqlbr.com.br/

To post to this group, send email to nos...@googlegroups.com
To unsubscribe from this group, send email to
nosqlbr+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nosqlbr?hl=pt-BR

---
Você está recebendo esta mensagem porque se inscreveu no grupo "nosqlbr" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para nosqlbr+u...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Jean C. Nascimento aka Suissa
Organizador Sampa.js, FrontinSampa, FrotinPG
NoSQL e JS/Node.js Evangelist

CIO - Fri.la
CTO - MeGaranto 
Diretor de Conteúdo Front-squad 
Diretor de Front-end - inSystems


Suissa Corp 
Consultoria, Treinamento e Cursos em HTML5, CSS3, Javascript, jQuery, AngularJs, Node.js e MongoDb


Reply all
Reply to author
Forward
0 new messages