MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Trovi alcuni valori in una collezione mongodb?

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 .