Това всъщност не е така. Първата заявка, db.users.find({"user":{"login":"tester"}});
, означава, че търсите user
което е равно на {"login":"tester"}
обект напълно, а не потребител с login
поле е равно на tester
. Има един документ, който отговаря на този критерий и този документ всъщност се връща като резултат от заявката.
По същия начин, втората заявка, db.users.find({"user":{"name":"anil"}});
, означава, че търсите user
което е равно на {"name":"anil"}
обект напълно. Няма такъв user
. Има един документ, който частично съвпада с вашето запитване, но това не е достатъчно.
Ако търсите user
с name
е равно на anil
, използвайте точкова нотация за достъп до поддокумента, както направихте във втората си група заявки.
да това е правилният начин.