sql >> Databáze >  >> NoSQL >> MongoDB

mongodb přistupuje k vnořeným dokumentům

To ve skutečnosti není. První dotaz, db.users.find({"user":{"login":"tester"}}); , znamená, že hledáte user to se rovná {"login":"tester"} objekt, nikoli uživatel s login pole se rovná tester . Existuje jeden dokument, který odpovídá tomuto kritériu a tento dokument se skutečně vrátil jako výsledek dotazu.

Podobně druhý dotaz, db.users.find({"user":{"name":"anil"}}); , znamená, že hledáte user to se rovná {"name":"anil"} objekt úplně. Žádný takový user neexistuje . Existuje jeden dokument, který částečně odpovídá vašemu dotazu, ale to nestačí.

Pokud hledáte user s name rovná se anil , použijte tečkový zápis pro přístup k dílčímu dokumentu, jako jste to udělali ve své druhé skupině dotazů.

Ano. toto je správný způsob.




  1. Nelze se připojit ke kontejneru MongoDB z jiného kontejneru Docker

  2. Mongoose:populate() / DBref nebo duplikace dat?

  3. Není k dispozici žádné implicitní zobrazení

  4. Odlišný příkaz MongoDB