Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual
Trên trang này
- Sự định nghĩa
- khả dụng
- Triển khai
- Công cụ lưu trữ
- Đọc mối quan tâm
majority
Hỗ trợ - Hành vi
- Khả năng tiếp tục
- Tra cứu tài liệu đầy đủ của các hoạt động cập nhật
- khả dụng
- Triển khai
- Công cụ lưu trữ
- Đọc mối quan tâm
majority
Hỗ trợ
For replica sets and sharded clusters only
Khả năng tiếp tục
Tra cứu tài liệu đầy đủ của các hoạt động cập nhật
Kiểm soát truy cập
npx mongodb-resumetoken-decoder | Mới trong phiên bản 4.0: Yêu cầu npx mongodb-resumetoken-decoder npx mongodb-resumetoken-decoder | Mở một con trỏ luồng thay đổi cho một bộ bản sao hoặc cụm được báo cáo để báo cáo về tất cả các bộ sưu tập không phải của nó trên cơ sở dữ liệu của nó, ngoại trừ 3, 4 và cơ sở dữ liệu 5. 8 to attempt resuming notifications starting after the operation specified in the resume token.Tài liệu 6 có thể chứa các trường và giá trị sau:Đồng ruộng | ||||||||||||||||||
{ resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] } | Mới trong phiên bản 4.0: Yêu cầu npx mongodb-resumetoken-decoder npx mongodb-resumetoken-decoder | Mở một con trỏ luồng thay đổi cho một bộ bản sao hoặc cụm được báo cáo để báo cáo về tất cả các bộ sưu tập không phải của nó trên cơ sở dữ liệu của nó, ngoại trừ 3, 4 và cơ sở dữ liệu 5. 8 to attempt starting a new change stream after the operation specified in the resume token. Allows notifications to resume after an invalidate event.Tài liệu 6 có thể chứa các trường và giá trị sau:Đồng ruộng Loại hình | ||||||||||||||||||
| Sự mô tả | tài liệu npx mongodb-resumetoken-decoder Không bắt buộc. Chỉ đạo 8 để thử thông báo tiếp tục bắt đầu sau khi hoạt động được chỉ định trong mã thông báo sơ yếu lý lịch. 8 to look up the most
current majority-committed version of the updated document. 8 returns a 1 field with the document lookup in addition to the 8 delta.
| ||||||||||||||||||
| int | Mỗi tài liệu sự kiện thay đổi luồng bao gồm mã thông báo sơ yếu lý lịch dưới dạng trường 9. Vượt qua toàn bộ trường 9 của tài liệu sự kiện thay đổi đại diện cho hoạt động bạn muốn tiếp tục sau. 7 loại trừ lẫn nhau với 2 và 3.
| ||||||||||||||||||
| int | Không bắt buộc. Chỉ đạo 8 để cố gắng bắt đầu một luồng thay đổi mới sau khi hoạt động được chỉ định trong mã thông báo sơ yếu lý lịch. Cho phép thông báo tiếp tục sau một sự kiện không hợp lệ. 2 loại trừ lẫn nhau với 7 và 3.
| ||||||||||||||||||
| Mới trong phiên bản 4.0: Yêu cầu npx mongodb-resumetoken-decoder npx mongodb-resumetoken-decoder | Mở một con trỏ luồng thay đổi cho một bộ bản sao hoặc cụm được báo cáo để báo cáo về tất cả các bộ sưu tập không phải của nó trên cơ sở dữ liệu của nó, ngoại trừ 3, 4 và cơ sở dữ liệu 5.Tài liệu 6 có thể chứa các trường và giá trị sau:
| ||||||||||||||||||
{ resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] } | Đồng ruộng | Loại hình Sự mô tả |
tài liệu |
Không bắt buộc. Chỉ đạo npx mongodb-resumetoken-decoder
8 để thử thông báo tiếp tục bắt đầu sau khi hoạt động được chỉ định trong mã thông báo sơ yếu lý lịch.
npx mongodb-resumetoken-decoder
Mỗi tài liệu sự kiện thay đổi luồng bao gồm mã thông báo sơ yếu lý lịch dưới dạng trường npx mongodb-resumetoken-decoder
9. Vượt qua toàn bộ trường npx mongodb-resumetoken-decoder
9 của tài liệu sự kiện thay đổi đại diện cho hoạt động bạn muốn tiếp tục sau.
npx mongodb-resumetoken-decoder
npx mongodb-resumetoken-decoder
npx mongodb-resumetoken-decoder { resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] } { resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }
7 loại trừ lẫn nhau với
2 và
3. is available for replica sets and sharded clusters:
Không bắt buộc. Chỉ đạo
8 để cố gắng bắt đầu một luồng thay đổi mới sau khi hoạt động được chỉ định trong mã thông báo sơ yếu lý lịch. Cho phép thông báo tiếp tục sau một sự kiện không hợp lệ.npx mongodb-resumetoken-decoder
8 on any data-bearing member.npx mongodb-resumetoken-decoder
2 loại trừ lẫn nhau với{ resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }
7 vànpx mongodb-resumetoken-decoder
3.{ resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }
8 on anpx mongodb-resumetoken-decoder
3 instance.watchCursor = db.getMongo[].watch[]
Mới trong phiên bản 4.2. npx mongodb-resumetoken-decoder
8 with the Wired Tiger storage engine.
sợi dây
Không bắt buộc. Theo mặc định,
npx mongodb-resumetoken-decoder
8 trả về Delta của các trường đó được sửa đổi bởi một thao tác cập nhật, thay vì toàn bộ tài liệu được cập nhật.Đặt
1 thànhwhile [!watchCursor.isClosed[]] { if [watchCursor.hasNext[]] { firstChange = watchCursor.next[]; break; } }
4 thành chỉ đạowhile [!watchCursor.isClosed[]] { if [watchCursor.hasNext[]] { firstChange = watchCursor.next[]; break; } }
8 để tra cứu phiên bản đa số mới nhất của tài liệu cập nhật.npx mongodb-resumetoken-decoder
8 Trả về trườngnpx mongodb-resumetoken-decoder
1 với Tra cứu tài liệu ngoài đồng bằngwhile [!watchCursor.isClosed[]] { if [watchCursor.hasNext[]] { firstChange = watchCursor.next[]; break; } }
8. only notifies on data changes that have persisted to a majority of data-bearing members.while [!watchCursor.isClosed[]] { if [watchCursor.hasNext[]] { firstChange = watchCursor.next[]; break; } } Không bắt buộc. Chỉ định số lượng sự kiện thay đổi tối đa để trả về trong mỗi lô phản hồi từ cụm MongoDB.
-
Có chức năng tương tự như
0while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } } Không bắt buộc. Lượng thời gian tối đa tính bằng mili giây, máy chủ chờ thay đổi dữ liệu mới để báo cáo cho con trỏ luồng thay đổi trước khi trả lại một lô trống.
Mặc định là
2 mili giây.while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } } Không bắt buộc. Vượt qua một tài liệu đối chiếu để chỉ định một đối chiếu cho con trỏ luồng thay đổi.
-
Nếu bị bỏ qua, mặc định là so sánh nhị phân
while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } }
4.Drivers, watchCursor = db.getMongo[].watch[]
9 does not automatically attempt to resume a change stream cursor after an error. The MongoDB drivers make one attempt to automatically resume a change stream
cursor after certain errors.Dấu thời gian uses information stored in the oplog to produce the change event description and generate a resume token associated to that operation. If the operation identified by the resume token passed to the
npx mongodb-resumetoken-decoder
7 or { resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }
2 option has already dropped off the
oplog, npx mongodb-resumetoken-decoder
8 cannot resume the change stream.Xem sơ yếu lý lịch một luồng thay đổi để biết thêm thông tin về việc tiếp tục luồng thay đổi.
Ghi chú
Bạn không thể sử dụng
7 để tiếp tục luồng thay đổi sau một sự kiện vô hiệu hóa [ví dụ: thả hoặc đổi tên bộ sưu tập] đóng luồng. Bắt đầu từ MongoDB 4.2, bạn có thể sử dụng startafter để bắt đầu một luồng thay đổi mới sau một sự kiện không hợp lệ.npx mongodb-resumetoken-decoder
Nếu việc triển khai là một cụm bị che khuất, việc loại bỏ Shard có thể khiến con trỏ dòng thay đổi mở đóng lại và con trỏ luồng thay đổi đóng có thể không được tiếp tục hoàn toàn.
Ghi chú
Bạn không thể sử dụng npx mongodb-resumetoken-decoder
7 để tiếp tục luồng thay đổi sau một sự kiện vô hiệu hóa [ví dụ: thả hoặc đổi tên bộ sưu tập] đóng luồng. Bắt đầu từ MongoDB 4.2, bạn có thể sử dụng startafter để bắt đầu một luồng thay đổi mới sau một sự kiện không hợp lệ.
npx mongodb-resumetoken-decoder
Nếu việc triển khai là một cụm bị che khuất, việc loại bỏ Shard có thể khiến con trỏ dòng thay đổi mở đóng lại và con trỏ luồng thay đổi đóng có thể không được tiếp tục hoàn toàn.
while [!watchCursor.isClosed[]] { |
let next = watchCursor.tryNext[] |
while [next !== null] { |
printjson[next]; |
next = watchCursor.tryNext[] |
} |
} |
Phiên bản MongoDB
Phiên bản tương thích tính năng
Sơ yếu lý lịch mã thông báo
5while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } }
MongoDB 4.2 trở lên
"4.2" hoặc "4.0"
Chuỗi mã hóa hex [
7]while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } }
MongoDB 4.2 trở lên
"4.2" hoặc "4.0"
"4.0"
Chuỗi mã hóa hex [
7]while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } }
"4.2" hoặc "4.0"
"3.6"
Chuỗi mã hóa hex [
7]while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } }
MongoDB 4.0.7 trở lên
"3.6"
Chuỗi mã hóa hex [
7]while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } }
MongoDB 4.0.7 trở lên
"4.0" hoặc "3.6"
MongoDB 4.0.6 và sớm hơn
Chuỗi mã hóa hex [
while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } }
9]"snippet", an extension to watchCursor = db.getMongo[].watch[]
9, that decodes hex-encoded resume tokens.Bindataresumetoken snippet from watchCursor = db.getMongo[].watch[]
9
snippet install resumetoken decodeResumeToken['']
MongoDB 3.6resumetoken from the command line [without using watchCursor = db.getMongo[].watch[]
9] if majority
3 is installed on your system:
npx mongodb-resumetoken-decoder
Với mã thông báo tiếp tục chuỗi được mã hóa hex, bạn có thể so sánh và sắp xếp các mã thông báo sơ yếu lý lịch.
Bất kể giá trị FCV là gì, triển khai 4.0 có thể sử dụng mã thông báo sơ yếu lý lịch Bindata hoặc mã thông báo tiếp tục chuỗi HEX để tiếp tục luồng thay đổi. Do đó, việc triển khai 4.0 có thể sử dụng mã thông báo sơ yếu lý lịch từ luồng thay đổi được mở trên bộ sưu tập từ triển khai 3,6.
Các định dạng mã thông báo sơ yếu lý lịch mới được giới thiệu trong phiên bản MongoDB không thể được tiêu thụ bởi các phiên bản MongoDB trước đó. in
9watchCursor = db.getMongo[].watch[]
MongoDB cung cấp một "đoạn trích", một phần mở rộng cho
watchCursor = db.getMongo[].watch[]
9, giải mã các mã thông báo sơ yếu lý lịch được mã hóa hex.Bạn có thể cài đặt và chạy đoạn trích nối lại từ
watchCursor = db.getMongo[].watch[]
9Bạn cũng có thể chạy Resumetoken từ dòng lệnh [mà không cần sử dụng
watchCursor = db.getMongo[].watch[]
9] nếu majority
3 được cài đặt trên hệ thống của bạn:Xem những điều sau đây để biết thêm chi tiết về:
tiếp tục
{ resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }
Sử dụng đoạn trích trong
watchCursor = db.getMongo[].watch[]
9Theo mặc định, con trỏ luồng thay đổi trả về các thay đổi trường/deltas cụ thể cho các hoạt động cập nhật. Bạn cũng có thể định cấu hình luồng thay đổi để tra cứu và trả về phiên bản đa số hiện tại của tài liệu đã thay đổi. Tùy thuộc vào các hoạt động viết khác có thể xảy ra giữa bản cập nhật và tra cứu, tài liệu được trả lại có thể khác biệt đáng kể so với tài liệu tại thời điểm cập nhật.
Tùy thuộc vào số lượng thay đổi được áp dụng trong hoạt động cập nhật và kích thước của tài liệu đầy đủ, có rủi ro rằng kích thước của tài liệu sự kiện thay đổi cho hoạt động cập nhật lớn hơn giới hạn tài liệu BSON 16MB. Nếu điều này xảy ra, máy chủ sẽ đóng con trỏ luồng thay đổi và trả về lỗi.
while [!watchCursor.isClosed[]] { if [watchCursor.hasNext[]] { firstChange = watchCursor.next[]; break; } }
Bắt đầu từ MongoDB 4.2, các luồng thay đổi có sẵn bất kể hỗ trợ quan tâm đọc
watchCursor = db.getMongo[].watch[]
5; Nghĩa là, hãy đọc hỗ trợ Mối quan tâm majority
có thể được bật [mặc định] hoặc bị vô hiệu hóa để sử dụng các luồng thay đổi.while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } }
Trong MongoDB 4.0 trở lên, các luồng thay đổi chỉ khả dụng nếu
watchCursor = db.getMongo[].watch[]
5 Đọc hỗ trợ mối quan tâm được bật [mặc định].watchCursor = db.getMongo[].watch[]
9 opens a change stream cursor on a replica set. The returned cursor reports on data changes to all the non-npx mongodb-resumetoken-decoder
2 collections across all databases except for the npx mongodb-resumetoken-decoder
3, npx mongodb-resumetoken-decoder
4, and the npx mongodb-resumetoken-decoder
5 databases.watchCursor = db.getMongo[].watch[]
Khi chạy với Điều khiển truy cập, người dùng phải có các hành động đặc quyền majority
8 và majority
9 trên tất cả các bộ sưu tập phi hệ thống trên tất cả các cơ sở dữ liệu .. nghĩa là, người dùng phải có vai trò cấp đặc quyền sau:
while [!watchCursor.isClosed[]] { let next = watchCursor.tryNext[] while [next !== null] { printjson[next]; next = watchCursor.tryNext[] } }
Vai trò Mongo.watch[ pipeline, options ]
0 tích hợp cung cấp các đặc quyền phù hợp.