sql >> Database >  >> NoSQL >> MongoDB

Vind je wat waarden in een mongodb-verzameling?

Geweldig, je zult dol zijn op Mongo.

In het voorbeeld dat u hebt gepost, doorloopt het programma een reeks resultaten. In het gebruikers-/wachtwoordprobleem dat u beschrijft, probeert u op basis van een aantal criteria één document te verkrijgen (niet een reeks documenten).

Op de schaal zou dat er zo uitzien:

n = "login"
p = "password"

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

Merk op dat ik findOne gebruik in plaats van find, waarmee een document wordt geretourneerd in plaats van een cursor naar veel documenten.

Laten we nu eens kijken naar het voorbeeld van het Java-stuurprogramma:

BasicDBObject query = new BasicDBObject();

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

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

De BasicDBObject maakt het query-object aan en vervolgens voegt u verschillende criteria toe die samen uw query vormen.

Dus in plaats van query.put("i", 71); je zou zoiets doen als:

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

en... in plaats van de while-lus gebruik je gewoon findOne in plaats van find, zodat je de resultatenset van 1 object niet hoeft te herhalen (zinloos).

U kunt meer lezen over findOne() hier .



  1. Mongo - Negeer eigendom van persistentie

  2. Hadoop HDFS MapReduce-uitvoer naar MongoDb

  3. Heeft MongoDB een native REST-interface?

  4. Mongoose werkt mijn document niet bij als ik geen terugbelfunctie heb