Fantastico, adorerai Mongo.
Nell'esempio che hai pubblicato, il programma scorre una serie di risultati. Nel problema utente/password descrivi ciò che stai effettivamente cercando di fare è ottenere un documento (non un insieme di documenti) in base ad alcuni criteri.
Sulla shell che sarebbe simile a questa:
n = "login"
p = "password"
db.users.findOne({ user: n, password: p})
Nota che sto usando findOne invece di find che restituisce un documento invece di un cursore su molti documenti.
Ora, diamo un'occhiata all'esempio del driver java:
BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cur = coll.find(query);
while(cur.hasNext()) {
System.out.println(cur.next());
}
Il BasicDBObject crea l'oggetto query e quindi inserisci criteri diversi che insieme formano la tua query.
Quindi, invece di query.put("i", 71);
faresti qualcosa del tipo:
query.put("user", n)
query.put("password", p)
e... invece del ciclo while usa semplicemente findOne invece di find in modo da non dover scorrere il set di risultati di 1 oggetto (inutile).
Puoi leggere ulteriori informazioni su findOne() qui .