MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Намерете някои стойности в колекция на mongodb?

Страхотно, ще обикнете Mongo.

В примера, който публикувахте, програмата преминава през набор от резултати. В проблема с потребител/парола вие описвате какво всъщност се опитвате да направите, е да получите един документ (а не набор от документи) въз основа на някои критерии.

В обвивката, която би изглеждала така:

n = "login"
p = "password"

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

Забележете, че използвам findOne вместо find, който връща документ вместо курсор към много документи.

Сега нека да разгледаме примера на драйвера на Java:

BasicDBObject query = new BasicDBObject();

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

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

BasicDBObject създава обекта на заявката и след това вие поставяте различни критерии, които заедно формират вашата заявка.

Така че вместо query.put("i", 71); бихте направили нещо като:

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

и... вместо цикъла while просто използвайте findOne вместо find, така че да не се налага да итерирате набора от резултати от 1 обект (безсмислено).

Можете да прочетете повече за findOne() тук .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Агрегиране на Mongodb по дни въз основа на unix timestamp

  2. Mongodb - дублирани полета в $set и $setOnInsert

  3. Как да изпълним собствена заявка на MongoDB (JSON) само с помощта на mongo-java-driver?

  4. Получаване на времеви печат на unix за секунди от MongoDB ISODate по време на агрегиране

  5. MongoDB не може да анализира заявка (2dsphere):две условия