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

Najít nějaké hodnoty v kolekci mongodb?

Skvělé, Mongo si zamilujete.

V příkladu, který jste zveřejnili, program iteruje sadu výsledků. V problému uživatel/heslo popisujete, o co se vlastně pokoušíte, je získat jeden dokument (ne soubor dokumentů) na základě určitých kritérií.

Na shellu, který by vypadal takto:

n = "login"
p = "password"

db.users.findOne({ user: n, password: p})

Všimněte si, že místo find používám findOne, které vrací dokument místo kurzoru do mnoha dokumentů.

Nyní se podívejme na příklad java ovladače:

BasicDBObject query = new BasicDBObject();

query.put("i", 71);
cur = coll.find(query);

while(cur.hasNext()) {
    System.out.println(cur.next());
}

BasicDBObject vytvoří objekt dotazu a poté vložíte různá kritéria, která dohromady vytvoří váš dotaz.

Takže místo query.put("i", 71); udělali byste něco jako:

query.put("user", n)
query.put("password", p)

a... místo cyklu while použijte místo find findOne, abyste nemuseli iterovat přes sadu výsledků 1 objektu (zbytečné).

Můžete si přečíst více o findOne() zde .



  1. MongoDB CursorNotFound Chyba na collection.find() pro několik stovek malých záznamů

  2. Jedinečný index Mongoose na vnořeném dokumentu

  3. Vyberte Odpovídající prvek pole a Vraťte vybraná pole

  4. elasticsearch v.s. MongoDB pro aplikaci filtrování