Dette er faktisk ikke. Den første forespørgsel, db.users.find({"user":{"login":"tester"}}); , betyder, at du leder efter en user der er lig med {"login":"tester"} objekt fuldstændigt, ikke en bruger med login felt er lig med tester . Der er et dokument, der matcher disse kriterier, og det dokument returneres faktisk som forespørgselsresultatet.
Ligeledes den anden forespørgsel, db.users.find({"user":{"name":"anil"}}); , betyder, at du leder efter en user der er lig med {"name":"anil"} objekt fuldstændigt. Der er ingen sådan user . Der er et dokument, der matcher din forespørgsel delvist, men det er ikke nok.
Hvis du leder efter en user med name er lig med anil , brug Priknotation for at få adgang til underdokumentet, som du gjorde i din anden gruppe af forespørgsler.
Ja. dette er den rigtige måde.