lệnh upsert sẽ được thực hiện như thế nào sớm trong Meteor?
UPDATE: @Thomas4019 points out upsert
mà bây giờ được hỗ trợ:
v0.6.6
"Thêm hỗ trợ upsert Collection.update bây giờ hỗ trợ {upsert: true}.. Tùy chọn Ngoài ra, thêm một Phương thức Collection.upsert trả về id đối tượng mới được chèn nếu có. "
Nguồn: History.md
tài liệu hướng dẫn sử dụng: http://docs.meteor.com/#upsert
- câu trả lời ban đầu sau -
Có một thẻ trên Trello Meteor Lộ trình mà bạn có thể bỏ phiếu để chỉ ra tầm quan trọng của nó đối với bạn : https://trello.com/c/C91INHmj
Hiện tại, danh sách này nằm trong danh sách "Sau" có nghĩa là sẽ mất một lúc trước khi danh sách được triển khai trừ khi nhận được nhiều phiếu bầu.
Điều quan trọng khác cần lưu ý là vì thiên thạch là nguồn mở, bạn có thể tự mình thực hiện các thay đổi cần thiết và gửi lại.
cách tốt nhất để làm điều tương tự trong thời gian trung bình là bao nhiêu?
Có một số giải pháp nhưng phù hợp nhất cho trường hợp sử dụng của bạn là không thể nói mà không có nhiều kiến thức về thiết kế của bạn.
Sử dụng mã như là, thêm một chỉ số duy nhất cho các bộ sưu tập, và xử lý các lỗi khóa trùng lặp nếu/khi nó phát sinh
Thay đổi thiết kế để thực hiện đồng thời lạc quan rõ ràng.
Cốt lõi của cả hai giải pháp này đều giống nhau, xử lý một cách duyên dáng trường hợp lỗi. # 1 dễ thực hiện hơn. # 2 cho phép linh hoạt hơn trong cách xử lý đồng thời lạc quan.
Với giải pháp của bạn, lưu ý rằng nếu hai khách hàng riêng biệt thực hiện findOne() cùng một lúc, sau đó hai tài liệu với '{title: 'Foo'}' sẽ được tạo ra. –
True, sau đó thực hiện meteor của upsert sẽ là lý tưởng. Vì nếu hai khách hàng chạy upsert với cùng một dữ liệu, họ tạo các tài liệu riêng lẻ trên máy khách mô phỏng db của họ; sau đó sao băng sẽ đồng bộ hóa hai tài liệu khi chúng chạy trên máy chủ. Nó có thể có một chút lông, mặc dù ... Tôi có thể thấy lý do tại sao nó không được thực hiện được nêu ra. – tom