MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongodb acessando subdocumentos


Isso não é na verdade. A primeira consulta, db.users.find({"user":{"login":"tester"}}); , significa que você está procurando um user que é igual a {"login":"tester"} objeto completamente, não um usuário com login campo é igual a tester . Há um documento que corresponde a esse critério e esse documento realmente retornou como resultado da consulta.

Da mesma forma, a segunda consulta, db.users.find({"user":{"name":"anil"}}); , significa que você está procurando um user que é igual a {"name":"anil"} objeto completamente. Não existe tal user . Há um documento que corresponde parcialmente à sua consulta, mas não é suficiente.

Se você estiver procurando por um user com name igual a anil , use Notação de ponto para acessar o subdocumento, como você fez em seu segundo grupo de consultas.

Sim. esta é a maneira correta.