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

Jak uruchamiać nieprzetworzone zapytania MongoDB bezpośrednio w Ruby?

Oto (prawdopodobnie) lepszy mini-samouczek, jak dostać się bezpośrednio do wnętrza MongoDB. To może nie rozwiązać konkretnego problemu, ale powinno doprowadzić Cię do wersji MongoDB tabeli SELECT * FROM table .

Przede wszystkim będziesz chciał Mongo::Connection obiekt. Jeśli używasz MongoMappera, możesz wywołać connection metoda klasy na dowolnym modelu MongoMappera, aby uzyskać połączenie lub poproś o to MongoMappera bezpośrednio:

connection = YourMongoModel.connection
connection = MongoMapper.connection

W przeciwnym razie użyjesz from_uri konstruktora do zbudowania własnego połączenia.

Następnie musisz zdobyć bazę danych, możesz to zrobić za pomocą notacji dostępu do tablicy, db lub pobierz aktualną bezpośrednio z MongoMappera:

db = connection['database_name']    # This does not support options.
db = connection.db('database_name') # This does support options.
db = MongoMapper.database           # This should be configured like
                                    # the rest of your app.

Teraz masz ładne, błyszczące Mongo::DB instancja w twoich rękach. Ale prawdopodobnie chcesz Collection zrobić coś interesującego i możesz to uzyskać za pomocą notacji dostępu do tablicy lub collection metoda:

collection = db['collection_name']
collection = db.collection('collection_name')

Teraz masz coś, co zachowuje się jak tabela SQL, więc możesz count ile ma rzeczy lub zapytaj za pomocą find :

cursor = collection.find(:key => 'value')
cursor = collection.find({:key => 'value'}, :fields => ['just', 'these', 'fields'])
# etc.

A teraz masz to, czego naprawdę szukasz:gorąca z piekarnika Mongo::Cursor który wskazuje na dane, które Cię interesują. Mongo::Cursor isan Enumerable więc masz dostęp do wszystkich swoich zwykłych znajomych iterujących, takich jak each , first , map i jeden z moich osobistych ulubionych, each_with_object :

a = cursor.each_with_object([]) { |x, a| a.push(mangle(x)) }

Istnieje również command i eval metody na Mongo::DB które mogą zrobić to, co chcesz.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wskazówki dotyczące zarządzania konfiguracjami baz danych

  2. Automatycznie generowane pole dla MongoDB przy użyciu Spring Boot

  3. MongoDB jako usługa kolejkowa?

  4. php mongodb wyszukiwanie pełnotekstowe i sortowanie

  5. MongoDB $dayOfYear