MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Znajdź jakieś wartości w kolekcji mongodb?

Świetnie, pokochasz Mongo.

W opublikowanym przykładzie program iteruje przez zestaw wyników. W problemie z użytkownikiem/hasłem opisujesz, co faktycznie próbujesz zrobić, to uzyskać jeden dokument (nie zestaw dokumentów) w oparciu o pewne kryteria.

Na powłoce wyglądałoby to tak:

n = "login"
p = "password"

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

Zauważ, że używam findOne zamiast find, który zwraca dokument zamiast kursora do wielu dokumentów.

Teraz spójrzmy na przykład sterownika java:

BasicDBObject query = new BasicDBObject();

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

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

BasicDBObject tworzy obiekt zapytania, a następnie umieszczasz różne kryteria, które razem tworzą zapytanie.

Więc zamiast query.put("i", 71); zrobiłbyś coś takiego:

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

i... zamiast pętli while po prostu użyj findOne zamiast find, dzięki czemu nie musisz iterować po zestawie wyników 1 obiektu (bezcelowe).

Możesz przeczytać więcej o findOne() tutaj .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy możesz użyć mongo $push prepend zamiast append?

  2. Jak usunąć pustą bazę danych Mongo o tej samej nazwie co zapełniona baza danych?

  3. Percona Live Frankfurt 2018 - Podsumowanie wydarzenia i nasze sesje

  4. Denormalizacja za pomocą Mongoose:Jak zsynchronizować zmiany

  5. Jak zrobić findAll w nowym sterowniku mongo C# i uczynić go synchronicznym?