sql >> Databasteknik >  >> NoSQL >> MongoDB

Hitta några värden i en mongodb-samling?

Fantastiskt, du kommer att älska Mongo.

I exemplet du postade, itererar programmet genom en uppsättning resultat. I användar-/lösenordsproblemet beskriver du vad du faktiskt försöker göra är att skaffa ett dokument (inte en uppsättning dokument) baserat på vissa kriterier.

På skalet som skulle se ut så här:

n = "login"
p = "password"

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

Observera att jag använder findOne istället för find som returnerar ett dokument istället för en markör till många dokument.

Låt oss nu ta en titt på java-drivrutinens exempel:

BasicDBObject query = new BasicDBObject();

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

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

BasicDBO-objektet skapar frågeobjektet och sedan sätter du olika kriterier som tillsammans bildar din fråga.

Så istället för query.put("i", 71); du skulle göra något i stil med:

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

och... istället för while-loopen, använd bara findOne istället för find så att du inte behöver iterera över resultatuppsättningen med 1 objekt (meningslöst).

Du kan läsa mer om findOne() här .



  1. Ändra typ av fält inuti mongoDB-aggregation och använder $lookup index på fält eller inte?

  2. Kallas en lagrad javascript-funktion från Mongoose?

  3. Välj det sista värdet för matrisen i underdokumentet

  4. MongoConnectionException - Det gick inte att ansluta till:localhost:27017