Esto no es en realidad. La primera consulta, db.users.find({"user":{"login":"tester"}});
, significa que estás buscando un user
eso equivale a {"login":"tester"}
objeto completamente, no un usuario con login
el campo es igual a tester
. Hay un documento que coincide con ese criterio y ese documento realmente se devolvió como resultado de la consulta.
Del mismo modo, la segunda consulta, db.users.find({"user":{"name":"anil"}});
, significa que estás buscando un user
que equivale a {"name":"anil"}
objeto por completo. No existe tal user
. Hay un documento que coincide parcialmente con su consulta, pero no es suficiente.
Si estás buscando un user
con name
es igual a anil
, use Notación de puntos para acceder al subdocumento, como lo hizo en su segundo grupo de consultas.
Sí. esta es la forma correcta.