Hướng dẫn mongodb watch - mongodb đồng hồ
Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual Show
Trên trang này
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
Không bắt buộc. Chỉ đạo npx mongodb-resumetoken-decoder |
while (!watchCursor.isClosed()) { |
if (watchCursor.hasNext()) { |
firstChange = watchCursor.next(); |
break; |
} |
} |
while (!watchCursor.isClosed()) { if (watchCursor.hasNext()) { firstChange = watchCursor.next(); break; } }
4 thành chỉ đạo npx mongodb-resumetoken-decoder <RESUME TOKEN>
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 <RESUME TOKEN>
8 Trả về trường while (!watchCursor.isClosed()) { if (watchCursor.hasNext()) { firstChange = watchCursor.next(); break; } }
1 với Tra cứu tài liệu ngoài đồng bằng while (!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.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 <RESUME TOKEN>
7 or { resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }
2 option has already dropped off the
oplog, npx mongodb-resumetoken-decoder <RESUME TOKEN>
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 <RESUME TOKEN>
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ệ.
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.
Tiếp tục mã thông báo | Loại mã thông báo sơ yếu lý lịch | 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 | MongoDB 4.2 trở lên | |||||||
"4.2" hoặc "4.0" | Chuỗi mã hóa hex ( | MongoDB 4.2 trở lên | |||||||
"4.2" hoặc "4.0" | "4.0" | Chuỗi mã hóa hex ( | |||||||
"4.2" hoặc "4.0" | "3.6" | Chuỗi mã hóa hex ( | |||||||
MongoDB 4.0.7 trở lên | "3.6" | Chuỗi mã hóa hex ( |
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 <RESUME TOKEN>
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 <RESUME TOKEN>
2 collections across all databases except for the npx mongodb-resumetoken-decoder <RESUME TOKEN>
3, npx mongodb-resumetoken-decoder <RESUME TOKEN>
4, and the npx mongodb-resumetoken-decoder <RESUME TOKEN>
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.