Tôi có ứng dụng Rails 4 nhiều miền, trong đó yêu cầu http xác định chức năng tôi hiển thị cho một khách truy cập nhất định.Làm thế nào để chuyển đổi cơ sở dữ liệu MongoDB khi đang sử dụng db.collection.insert()?
Mỗi miền trong ứng dụng của tôi phải được phân phát bởi cơ sở dữ liệu MongoDB của riêng nó. Ví dụ. domain1.com được phục vụ bởi db_for_domain_1 vv
tôi có thể đọc trong MongoDB docs on runtime persistence rằng
Mongoid.override_database("db_for_#{request.domain}")
cho phép tôi để chuyển đổi cơ sở dữ liệu một cách nhanh chóng.
Nhưng làm cách nào để duy trì sự kiên trì khi tôi bỏ qua Mongoid và sử dụng phương thức mongo Shell db.collection.insert()? Tôi vẫn sẽ làm điều đó từ bên trong ứng dụng của tôi mặc dù.
Câu trả lời có thể nằm trong số MongoDB docs on collection access, nhưng tôi không hiểu. Vậy làm thế nào để tôi chuyển đổi cơ sở dữ liệu trước/trong khi hoạt động này ?:
MyModel.collection.insert({field_1: "Value 1", field_2: "Value 2"})
Bạn có sử dụng cùng một kiểu máy trên cơ sở dữ liệu không? – tegon
Vâng, tôi làm! Tôi chúng tôi cùng một mô hình chính xác. – ChristofferJoergensen
Trên "... làm thế nào để giữ cho sự bền bỉ ...": Một ODM không thể biết về các hoạt động được thực hiện bên ngoài khuôn khổ đó. Khi bạn chèn tài liệu thông qua lệnh mongo shell, hãy kích hoạt một tài liệu đọc trên tài liệu đó thông qua Mongoid để tải nó vào lớp persistence. –