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

Giải nén, mô hình hóa và thay đổi mô hình dữ liệu, với mongoid / mongodb

Bạn làm hai điều:

  • Lọc người dùng bằng truy vấn db thay vì lọc trong ứng dụng
  • chỉ tìm nạp các trường bạn cần từ db, thay vì toàn bộ đối tượng người dùng (giả sử bạn có một số nội dung khác trong người dùng, mà bạn đã bỏ qua ở đây cho ngắn gọn)

    Competitor = Struct.new(:html_url, :description, :user)
    competitors = []
    User.where('watchlists.tags_array' => %w[ruby web framework]).
        only(:nickname, :watchlists).each do |u|
      u.watchlists.where(:tags_array => %w[ruby web framework]).each do |wl|
        competitors << Competitor.new(wl.html_url, wl.description, u.nickname)
      end
    end
    

Tái bút:Có thể bạn không muốn sử dụng map trên User.all , nó sẽ yêu cầu nhiều bộ nhớ nếu bạn có nhiều tài liệu người dùng nặng. Ngoài ra, bạn không sử dụng người dùng được ánh xạ mà thay vào đó thu thập kết quả trong competitors tự mảng, vì vậy each sẽ hoạt động tốt.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Không thể khởi động hình ảnh mongo của docker trên windows

  2. Mongoose Virtuals trong MongoDB Aggregate

  3. Mongo. Truy vấn tài liệu với một mảng có con TẤT CẢ phải khớp với một truy vấn

  4. Tạo số tăng dần với mongoDB

  5. làm thế nào để giải phóng bộ nhớ đệm được sử dụng bởi Mongodb?