sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Encontrar algunos valores en una colección mongodb?

Genial, te encantará Mongo.

En el ejemplo que publicaste, el programa itera a través de un conjunto de resultados. En el problema de usuario/contraseña, describe lo que realmente está tratando de hacer:obtener un documento (no un conjunto de documentos) en función de algunos criterios.

En el caparazón que se vería así:

n = "login"
p = "password"

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

Tenga en cuenta que estoy usando findOne en lugar de find, que devuelve un documento en lugar de un cursor a muchos documentos.

Ahora, echemos un vistazo al ejemplo del controlador java:

BasicDBObject query = new BasicDBObject();

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

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

BasicDBObject crea el objeto de consulta y luego coloca diferentes criterios que juntos forman su consulta.

Así que en lugar de query.put("i", 71); harías algo como:

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

y... en lugar del ciclo while, simplemente use findOne en lugar de find para que no tenga que iterar sobre el conjunto de resultados de 1 objeto (sin sentido).

Puede leer más sobre findOne() aquí .