Świetnie, pokochasz Mongo.
W opublikowanym przykładzie program iteruje przez zestaw wyników. W problemie z użytkownikiem/hasłem opisujesz, co faktycznie próbujesz zrobić, to uzyskać jeden dokument (nie zestaw dokumentów) w oparciu o pewne kryteria.
Na powłoce wyglądałoby to tak:
n = "login"
p = "password"
db.users.findOne({ user: n, password: p})
Zauważ, że używam findOne zamiast find, który zwraca dokument zamiast kursora do wielu dokumentów.
Teraz spójrzmy na przykład sterownika java:
BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cur = coll.find(query);
while(cur.hasNext()) {
System.out.println(cur.next());
}
BasicDBObject tworzy obiekt zapytania, a następnie umieszczasz różne kryteria, które razem tworzą zapytanie.
Więc zamiast query.put("i", 71);
zrobiłbyś coś takiego:
query.put("user", n)
query.put("password", p)
i... zamiast pętli while po prostu użyj findOne zamiast find, dzięki czemu nie musisz iterować po zestawie wyników 1 obiektu (bezcelowe).
Możesz przeczytać więcej o findOne() tutaj .