MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách kích hoạt các truy vấn MongoDB thô trực tiếp trong Ruby

Đây là một hướng dẫn nhỏ (có thể) tốt hơn về cách truy cập trực tiếp vào phần bên trong MongoDB của bạn. Điều này có thể không giải quyết được vấn đề cụ thể của bạn nhưng nó sẽ giúp bạn hiểu được phiên bản MongoDB của bảng SELECT * FROM table .

Trước hết, bạn sẽ cần một Mongo::Connection vật. Nếu bạn đang sử dụng MongoMapper thì bạn có thể gọi connection phương thức lớp trên bất kỳ mô hình MongoMapper nào của bạn để có được một nhà tài trợ kết nối, hãy hỏi trực tiếp MongoMapper về nó:

connection = YourMongoModel.connection
connection = MongoMapper.connection

Nếu không, tôi đoán bạn sẽ sử dụng from_uri phương thức khởi tạo để xây dựng kết nối của riêng bạn.

Sau đó, bạn cần bắt tay vào cơ sở dữ liệu, bạn có thể thực hiện việc này bằng cách sử dụng ký hiệu truy cập mảng, db hoặc lấy phương thức hiện tại trực tiếp từ MongoMapper:

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.

Bây giờ bạn có một Mongo::DB sáng bóng đẹp mắt trong tay bạn. Tuy nhiên, bạn có thể muốn có Collection để làm bất cứ điều gì thú vị và bạn có thể đạt được điều đó bằng cách sử dụng ký hiệu truy cập mảng hoặc collection phương pháp:

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

Bây giờ bạn có một cái gì đó hoạt động giống như một bảng SQL, bạn có thể count nó có bao nhiêu thứ hoặc truy vấn nó bằng cách sử dụng find :

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

Và bây giờ bạn có những gì bạn thực sự muốn:một cái lò nóng ra khỏi lò Mongo::Cursor trỏ đến dữ liệu mà bạn quan tâm. Mongo::Cursor isan Enumerable vì vậy bạn có quyền truy cập vào tất cả các bạn trai lặp lại thông thường của mình, chẳng hạn như each , first , map và một trong những mục yêu thích cá nhân của tôi, each_with_object :

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

Ngoài ra còn có commandeval các phương thức trên Mongo::DB điều đó có thể làm những gì bạn muốn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách nhập định dạng tệp .bson trên mongodb

  2. MongoDB:tổng hợp trường thêm $ dự án với giá trị tĩnh

  3. MongoDB - Cập nhật hoặc Chèn đối tượng trong mảng

  4. Bộ bản sao MongoDB với Bộ ghi nợ

  5. Cách mới để quản lý cơ sở dữ liệu nguồn mở