2012-06-13 30 views
6

Tôi đã không hài lòng với Mongo, nhưng không thể lấy ví dụ đơn giản này để làm việc. Tôi chỉ đơn giản là cố gắng để lấy tất cả các tài liệu trong bộ sưu tập:Tìm tất cả các tài liệu trong bộ sưu tập với Mongoid

require 'mongoid' 

# configuration ...  

class Category 

    include Mongoid::Document 
    field :name, type: String 

end 

Category.each do |test| 
    puts test.inspect 
end 

tôi nhận được lỗi: undefined method 'each' for Category:Class (NoMethodError).

Kết nối với cơ sở dữ liệu cũng được thành lập, và một bộ sưu tập mang tên categories chứa một vài tài liệu.

Trả lời

12

Category thực sự không có phương thức each vì đó là lớp mô hình chứ không phải bộ sưu tập. Tuy nhiên, nó có một số phương thức trả về các đối tượng giống như bộ sưu tập. Một trong số đó là all. Vì vậy, mã phải giống như sau:

Category.all.each do |test| 
    puts test.inspect 
end 
+0

Có bất kỳ tác động nào về hiệu suất giữa Category.all.count và Category.count không? –

+0

@ManojMJ: không, chính xác là cùng một truy vấn. –

+1

Nó hoạt động, nhưng tôi không thể tìm thấy bất kỳ tham chiếu đến nó trong tài liệu o_0? – rocketspacer

Các vấn đề liên quan