MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Trouver des valeurs dans une collection mongodb ?

Génial, vous allez adorer Mongo.

Dans l'exemple que vous avez publié, le programme parcourt un ensemble de résultats. Dans le problème d'utilisateur/mot de passe, vous décrivez ce que vous essayez réellement de faire, c'est d'obtenir un document (et non un ensemble de documents) en fonction de certains critères.

Sur le shell, cela ressemblerait à ceci :

n = "login"
p = "password"

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

Remarquez que j'utilise findOne au lieu de find qui renvoie un document au lieu d'un curseur vers de nombreux documents.

Maintenant, regardons l'exemple du pilote Java :

BasicDBObject query = new BasicDBObject();

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

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

Le BasicDBObject crée l'objet de requête, puis vous mettez différents critères qui forment ensemble votre requête.

Donc au lieu de query.put("i", 71); vous feriez quelque chose comme :

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

et... au lieu de la boucle while, utilisez simplement findOne au lieu de find pour ne pas avoir à parcourir le jeu de résultats d'un objet (inutile).

Vous pouvez en savoir plus sur findOne() ici .