2011-09-26 24 views
12

Tôi có một trang lưu trữ dữ liệu trong CouchDB. Trang truy cập cơ sở dữ liệu trực tiếp qua javascript, do đó, không có nhiều logic bị ẩn khỏi trình duyệt. Khi tạo một tài liệu mới, có một số logic trích xuất các phần tử của dữ liệu vào các trường riêng biệt để chúng có thể được tìm kiếm.CouchDB - mã kích hoạt khi tạo hoặc cập nhật tài liệu

Có thể thực hiện logic này trên máy chủ khi tạo hoặc cập nhật tài liệu hay tôi bị kẹt trước khi nhấn vào cơ sở dữ liệu?

Trả lời

18

Bạn có một vài tùy chọn.

Trước tiên, hãy xem câu hỏi này về CouchDB update functions. Chức năng cập nhật nhận được yêu cầu từ trình duyệt và có thể sửa đổi chúng theo bất kỳ cách nào trước khi lưu trữ chúng trong CouchDB. Ví dụ: một số người sử dụng chúng để tự động thêm dấu thời gian. Xem thêm trang wiki trên CouchDB document update handlers.

Một tùy chọn khác là nhận CouchDB change notifications. Trong trường hợp này, một chương trình riêng biệt (hoặc trình duyệt của riêng bạn, hoặc thậm chí tốt hơn, một chương trình độc lập mà bạn chạy) có thể truy vấn CouchDB cho _changes. CouchDB sẽ thông báo cho chương trình này sau khi tài liệu được lưu. Tiếp theo, chương trình có thể tìm nạp tài liệu và sau đó lưu trữ bất kỳ bản sửa đổi mới nào là cần thiết.

Với tôi, có vẻ như bạn nên thử chức năng _update trước tiên.

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