MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Finden Sie einige Werte in einer Mongodb-Sammlung?

Großartig, du wirst Mongo lieben.

In dem von Ihnen geposteten Beispiel durchläuft das Programm eine Reihe von Ergebnissen. In dem Benutzer/Passwort-Problem, das Sie beschreiben, versuchen Sie tatsächlich, ein Dokument (nicht eine Reihe von Dokumenten) basierend auf bestimmten Kriterien zu erhalten.

Auf der Shell würde das so aussehen:

n = "login"
p = "password"

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

Beachten Sie, dass ich findOne anstelle von find verwende, was für viele Dokumente ein Dokument anstelle eines Cursors zurückgibt.

Sehen wir uns nun das Beispiel des Java-Treibers an:

BasicDBObject query = new BasicDBObject();

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

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

Das BasicDBObject erstellt das Abfrageobjekt und dann fügen Sie verschiedene Kriterien hinzu, die zusammen Ihre Abfrage bilden.

Also statt query.put("i", 71); Sie würden so etwas tun:

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

und... anstelle der While-Schleife verwenden Sie einfach findOne anstelle von find, damit Sie nicht über die Ergebnismenge von 1 Objekt iterieren müssen (sinnlos).

Sie können mehr über findOne() lesen hier .