Chào mừng bạn đến blog Kế Toán.VN Trang Chủ

Table of Content

MongoDB thời gian thực ✅ 2023

Kinh Nghiệm về MongoDB thời gian thực Chi Tiết

Gan Feng Du đang tìm kiếm từ khóa MongoDB thời gian thực được Cập Nhật vào lúc : 2022-12-23 16:50:11 . Với phương châm chia sẻ Kinh Nghiệm Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi tham khảo nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Mình lý giải và hướng dẫn lại nha.

Bạn đã bao giờ gặp tình huống muốn update giao diện người tiêu dùng ngay lúc có một số trong những thay đổi đối với cơ sở tài liệu Mongo của tớ chưa? . Nếu vậy thì nội dung bài viết này là dành riêng cho bạn

Nội dung chính Show
    điều kiện tiên quyếtTạo một ứng dụng PizerĐịnh thông số kỹ thuật MongoDBXây dựng nút. sever jsXây dựng ứng dụng ReactKiểm thử ứng dụngPhần kết luậnMongoDB có thật khôngLàm cách nào để lấy tài liệu Thời gian thực từ MongoDB?MongoDB Atlas có thật khôngMongoDB có tốt cho tài liệu chuỗi thời gian không?

Mặc dù việc tiếp theo là sử dụng những cơ sở tài liệu thời gian thực như firebase hoặc RethinkDB, nhưng bạn thực sự hoàn toàn có thể đạt được điều này bằng phương pháp sử dụng MongoDB của tớ và nó khá đơn giản. MongoDB có một thứ gọi là

$ mongo
$ rs.initiate() 1 được cho phép bạn nghe cơ sở tài liệu của tớ

Phương pháp tôi sắp trình bày sử dụng

$ mongo
$ rs.initiate() 2 , bạn cũng hoàn toàn có thể đạt được điều tương tự bằng phương pháp sử dụng $ mongo
$ rs.initiate() 3 (nhấp vào những link đó để đọc thêm về những bộ sao chép và cụm phân đoạn)
    Vì vậy, bước đầu tiên sẽ là quy đổi MongoDB độc lập của bạn thành bộ bản sao. Điều này là vì $ mongo
    $ rs.initiate() 1 không khả dụng với MongoDB độc lập (Thành thật mà nói, tôi đã định bỏ cuộc khi thấy điều đó, nhưng hãy tin tôi, nó đơn giản thôi)
$ mongod --port 27017 --replSet rs0

Tái bút. Dừng mongo độc lập hiện tại của bạn và sau đó chạy lệnh trên

Lệnh trên khởi đầu phiên bản mongo của bạn dưới dạng

$ mongo
$ rs.initiate() 5 mang tên là rs0
    Bây giờ với mongo của bạn đang chạy dưới dạng $ mongo
    $ rs.initiate() 6 trước khi tạo cơ sở tài liệu mới, chúng tôi phải khởi đầu bộ sao chép của tớ. Để làm như vậy, hãy mở một hiên chạy cửa số mới và làm như sau
$ mongo
$ rs.initiate()
    Bây giờ hãy đi và tạo cơ sở tài liệu của chúng tôi. Tôi sử dụng Robo 3T để quản lý cơ sở tài liệu của tớ, bạn hoàn toàn có thể tạo nó trong thiết bị đầu cuối bằng phương pháp sử dụng $ mongo
    $ rs.initiate() 7. Tôi đang tạo một db mang tên là UserDB

MongoDB thời gian thực

Về cơ bản, nó tiếp xúc với một API được triển khai trong Node. js lưu những thay đổi vào cơ sở tài liệu. nút. js cũng nhận những thay đổi này bằng phương pháp sử dụng những luồng thay đổi, phân tích cú pháp và xuất bản chúng lên kênh Pusher để ứng dụng React hoàn toàn có thể sử dụng chúng

Đây là sơ đồ mô tả quá trình trên

MongoDB thời gian thực

Tất nhiên, một ngữ cảnh trong đó nhiều ứng dụng đang ghi vào cùng một cơ sở tài liệu hoàn toàn có thể thực tế hơn, tuy nhiên với mục tiêu học tập, tôi sẽ sử dụng một ứng dụng đơn giản

Ngoài ra, bạn sẽ thấy một giải pháp như vậy này hoàn toàn có thể là một giải pháp thay thế tốt ra làm sao cho kĩ năng cơ sở tài liệu thời gian thực của Firebase

điều kiện tiên quyết

Đây là những gì bạn cần setup để tuân theo hướng dẫn này

    MongoDB (phiên bản 3. 6 trở lên)Nút. js (6 trở lên)Tùy chọn, một trình soạn thảo JavaScript

Bạn sẽ nên phải có kiến ​​thức về

    JavaScript (trình độ trung cấp), rõ ràng là Node. js và phản ứngCác tác vụ quản lý MongoDB cơ bản

Để tham khảo, đây là kho tàng trữ GitHub với tất cả mã được hiển thị trong hướng dẫn này và hướng dẫn để chạy nó

Bây giờ hãy khởi đầu bằng phương pháp tạo một ứng dụng Pusher

Tạo một ứng dụng Pizer

Nếu bạn chưa tồn tại, hãy tạo một tài khoản miễn phí tại Pizer

Sau đó, truy cập bảng điều khiển của bạn và tạo ứng dụng Kênh, chọn tên, cụm gần vị trí của bạn nhất và tùy chọn, Phản ứng với tư cách là công nghệ tiên tiến giao diện người tiêu dùng và Nút. js là công nghệ tiên tiến phụ trợ

MongoDB thời gian thực

Điều này sẽ đáp ứng cho bạn một số trong những mã mẫu để khởi đầu

MongoDB thời gian thực

Lưu những giá trị id, khóa, bí mật và cụm ứng dụng của bạn. Chúng ta sẽ cần chúng sau

Định thông số kỹ thuật MongoDB

Vì những luồng thay đổi sử dụng nhật ký hoạt động và sinh hoạt giải trí của MongoDB và oplog được sử dụng để tương hỗ những tính năng sao chép của cơ sở tài liệu này, nên bạn chỉ hoàn toàn có thể sử dụng những luồng thay đổi với bộ bản sao hoặc cụm phân đoạn

Việc sử dụng những bộ bản sao sẽ thuận tiện và đơn giản hơn, vì vậy hãy đi theo cách đó

Bộ bản sao là một nhóm gồm 175 quy trình duy trì cùng một bộ tài liệu. Tuy nhiên, bạn hoàn toàn có thể tạo một bộ bản sao chỉ với một sever, chỉ việc thực hiện lệnh này

$ mongo
$ rs.initiate() 8

Hãy nhớ rằng nếu bạn không sử dụng thư mục tài liệu mặc định (

$ mongo
$ rs.initiate() 76 hoặc $ mongo
$ rs.initiate() 77), hãy chỉ định đường dẫn đến thư mục tài liệu bằng tùy chọn $ mongo
$ rs.initiate() 78$ mongo
$ rs.initiate() 2

Tiếp theo, trong một hiên chạy cửa số đầu cuối riêng biệt, chạy

$ mongo
$ rs.initiate() 79, ứng dụng khách MongoDB

Nếu đây là lần đầu tiên bạn tạo một bộ bản sao, hãy thực thi

$ mongo
$ rs.initiate() 40$ mongo
$ rs.initiate() 5

Ứng dụng sẽ xem bộ sưu tập

$ mongo
$ rs.initiate() 41 trong cơ sở tài liệu mang tên là $ mongo
$ rs.initiate() 42

Thông thường, cơ sở tài liệu và bộ sưu tập được tạo bởi trình điều khiển MongoDB khi ứng dụng thực hiện thao tác đầu tiên trên chúng, nhưng đối với luồng thay đổi, chúng phải tồn tại trước khi mở luồng

Vì vậy, khi bạn đang ở

$ mongo
$ rs.initiate() 79 , hãy tạo cơ sở tài liệu và bộ sưu tập bằng những lệnh $ mongo
$ rs.initiate() 44 và $ mongo
$ rs.initiate() 45, như vậy này$ mongo
$ rs.initiate() 7

Bây giờ bạn đã sẵn sàng để khởi đầu xây dựng ứng dụng

Hãy khởi đầu với Nút. sever js

Xây dựng nút. sever js

Tạo một thư mục mới và trong một hiên chạy cửa số đầu cuối, bên trong thư mục đó, khởi tạo một Nút. dự án công trình bất Động sản js bằng lệnh

$ mongo
$ rs.initiate() 4

Tiếp theo, setup những phụ thuộc mà ứng dụng sẽ sử dụng

$ mongo
$ rs.initiate() 3
    body toàn thân-parser là một phần mềm trung gian để phân tích cú pháp phần thân của yêu cầuexpress để tạo sever web cho API REST mà ứng dụng React sẽ sử dụngmongoose là một thư viện nhờ vào lược đồ để thao tác với MongoDBđẩy để xuất bản những thay đổi cơ sở tài liệu trong thời gian thực

Bây giờ, điều đầu tiên tất cả chúng ta sẽ làm là tạo một lược đồ cho bộ sưu tập tác vụ. Tạo tệp

$ mongo
$ rs.initiate() 46 và sao chép đoạn mã sau$ mongo
$ rs.initiate() 5

Như bạn hoàn toàn có thể thấy, bộ sưu tập sẽ chỉ tàng trữ tác vụ dưới dạng văn bản

Tiếp theo, tạo tệp

$ mongo
$ rs.initiate() 47 và yêu cầu lược đồ tác vụ và Express để tạo bộ định tuyến$ mongo
$ rs.initiate() 7

Tạo một điểm cuối

$ mongo
$ rs.initiate() 48 với đường dẫn $ mongo
$ rs.initiate() 49 để lưu tác vụ$ mongo
$ rs.initiate() 0

Và một số trong những khác để xóa tác vụ, chuyển ID của tác vụ bằng phương pháp

$ mongo
$ rs.initiate() 30$ mongo
$ rs.initiate() 2

Bây giờ, trong thư mục gốc, hãy tạo tệp

$ mongo
$ rs.initiate() 31 và yêu cầu những mô-đun sau$ mongo
$ rs.initiate() 20

Định thông số kỹ thuật đối tượng Pusher nhập thông tin ứng dụng của bạn

$ mongo
$ rs.initiate() 21

Và định thông số kỹ thuật sever Express với những tiêu đề CORS (vì ứng dụng React sẽ được xuất bản ở một cổng khác), những yêu cầu JSON và

$ mongo
$ rs.initiate() 32 làm đường dẫn$ mongo
$ rs.initiate() 22

Bằng cách này, bạn hoàn toàn có thể link với cơ sở tài liệu thông qua tên của cục bản sao mà bạn đã định thông số kỹ thuật trước đó

$ mongo
$ rs.initiate() 23

Và đặt hai cuộc gọi lại, một cho lỗi link và một cuộc gọi khác nếu link thành công

$ mongo
$ rs.initiate() 24

Nếu link thành công, hãy khởi đầu lắng nghe những link trên cổng 9000 và theo dõi những thay đổi trên bộ sưu tập

$ mongo
$ rs.initiate() 41$ mongo
$ rs.initiate() 25

Đây là phần thú vị

Khi có thay đổi trong bộ sưu tập, một sự kiện thay đổi được nhận. Đặc biệt, những thay đổi sau đây được tương hỗ

    ChènCập nhậtThay thếXóa bỏvô hiệu hóa

Đây là một ví dụ về sự kiện chèn

$ mongo
$ rs.initiate() 26

Nói cách khác, bạn hoàn toàn có thể sử dụng thuộc tính

$ mongo
$ rs.initiate() 34 để khởi đầu nhận những sự kiện từ hoạt động và sinh hoạt giải trí được đại diện bởi thuộc tính đó

Đây là một ví dụ về sự kiện xóa

$ mongo
$ rs.initiate() 27

Lưu ý rằng trong trường hợp này, đối tượng đã xóa không được trả lại, chỉ có ID của nó trong thuộc tính

$ mongo
$ rs.initiate() 35

Bạn hoàn toàn có thể tìm hiểu thêm về những sự kiện thay đổi này tại đây

Với thông tin này, quay lại

$ mongo
$ rs.initiate() 31, bạn hoàn toàn có thể trích xuất tài liệu liên quan từ đối tượng và xuất bản nó lên Pusher theo cách sau$ mongo
$ rs.initiate() 28

Và đó là mã cho sever. Bây giờ hãy xây dựng ứng dụng React

Xây dựng ứng dụng React

Hãy sử dụng ứng dụng tạo phản ứng để khởi động ứng dụng React

Trong một thư mục khác, thực hiện lệnh sau trong hiên chạy cửa số đầu cuối để tạo ứng dụng mới

$ mongo
$ rs.initiate() 29

Bây giờ hãy vào thư mục ứng dụng và setup tất cả phụ thuộc Pizer với

$ mongo
$ rs.initiate() 37$ mongo
$ rs.initiate() 50

Mở tệp

$ mongo
$ rs.initiate() 38 và thay thế nội dung của tệp bằng những kiểu CSS sau$ mongo
$ rs.initiate() 51

Tiếp theo, mở tệp

$ mongo
$ rs.initiate() 39 và ở trên cùng, nhập thư viện Pusher$ mongo
$ rs.initiate() 52

Xác định hằng số cho URL API

$ mongo
$ rs.initiate() 53

Trong hàm tạo của lớp, xác định một mảng cho những tác vụ và một thuộc tính cho văn bản của tác vụ dưới dạng trạng thái và link những phương thức để update văn bản cũng như thêm và xóa những tác vụ

$ mongo
$ rs.initiate() 54

Hãy xem xét từng phương pháp. Thêm chúng sau hàm tạo, trước phương thức

$ mongo
$ rs.initiate() 50

Phương thức

$ mongo
$ rs.initiate() 51 sẽ update trạng thái mọi khi văn bản đầu vào cho tác vụ thay đổi$ mongo
$ rs.initiate() 55

Phương thức

$ mongo
$ rs.initiate() 52 sẽ đăng lên tác vụ do người tiêu dùng nhập vào API$ mongo
$ rs.initiate() 56

Và phương thức

$ mongo
$ rs.initiate() 53 sẽ gọi API để xóa một tác vụ bằng ID của nó$ mongo
$ rs.initiate() 57

Mặt khác, bạn cũng tiếp tục có nhu yếu các phương thức để thêm và xóa một tác vụ khỏi trạng thái để những thay đổi hoàn toàn có thể được phản ánh trong giao diện người tiêu dùng. Đó là việc làm của những phương thức

$ mongo
$ rs.initiate() 54 và $ mongo
$ rs.initiate() 55 $ mongo
$ rs.initiate() 58

Ứng dụng sẽ gọi những phương thức này khi nhận được sự kiện tương ứng từ Pusher

Bạn hoàn toàn có thể thiết lập Pusher và link những phương thức này với những sự kiện

$ mongo
$ rs.initiate() 56 và $ mongo
$ rs.initiate() 57 trong phương thức $ mongo
$ rs.initiate() 58, nhập cụm và khóa ứng dụng Pusher của bạn$ mongo
$ rs.initiate() 59

Bằng cách này, phương thức

$ mongo
$ rs.initiate() 59 chỉ hiển thị những tác vụ từ trạng thái bằng phương pháp sử dụng thành phần $ mongo
$ rs.initiate() 70 và một biểu mẫu để nhập những tác vụ mới

Thay thế phương thức

$ mongo
$ rs.initiate() 50 bằng phương thức sau$ mongo
$ rs.initiate() 70

Và mã của thành phần

$ mongo
$ rs.initiate() 70 (bạn hoàn toàn có thể đặt sau lớp $ mongo
$ rs.initiate() 73)$ mongo
$ rs.initiate() 71

Và đó là nó. Hãy kiểm tra ứng dụng hoàn hảo nhất

Kiểm thử ứng dụng

Đảm bảo cơ sở tài liệu MongoDB đang chạy với bộ bản sao được định thông số kỹ thuật trên sever

$ mongo
$ rs.initiate() 2

Trong một hiên chạy cửa số đầu cuối, hãy chuyển đến thư mục chứa Nút. sever js cư trú và thực thi

$ mongo
$ rs.initiate() 73

Đối với ứng dụng React, bên trong thư mục ứng dụng, hãy thực thi

$ mongo
$ rs.initiate() 74

Một hiên chạy cửa số trình duyệt sẽ mở . //sever cục bộ. 3000/, và từ đó, bạn hoàn toàn có thể khởi đầu nhập và xóa những tác vụ

MongoDB thời gian thực

Bạn cũng hoàn toàn có thể thấy trong đầu ra của Node. js cách nhận những sự kiện thay đổi từ MongoDB

MongoDB thời gian thực

Hoặc trên bảng điều khiển của Pusher, hãy lựa chọn ứng dụng của bạn và trong phần Gỡ lỗi, bạn sẽ thấy những tin nhắn được nhận ra làm sao

MongoDB thời gian thực

Phần kết luận

Trong hướng dẫn này, bạn đã học cách duy trì tài liệu trong MongoDB và truyền những thay đổi trong thời gian thực bằng phương pháp sử dụng những luồng thay đổi và những kênh Pizer

Điều này tương đương với hiệu suất cao được đáp ứng bởi Firebase và cơ sở tài liệu thời gian thực của nó. Ưu điểm là một giải pháp như giải pháp được trình bày trong hướng dẫn này linh hoạt hơn và được cho phép bạn trấn áp nhiều hơn nữa

Từ đây, ứng dụng hoàn toàn có thể được mở rộng theo nhiều cách thức, ví dụ điển hình

    Hỗ trợ cho nhiều bộ sưu tập hơnTriển khai hiệu suất cao update cho những tác vụ (ví dụ: trạng thái) và sao chép sự kiện nàySử dụng mã thông báo tiếp tục để nhận những sự kiện từ lần đăng ký ở đầu cuối, sau khi link bị lỗi

Hãy nhớ rằng trong kho tàng trữ GitHub này, bạn hoàn toàn có thể tìm thấy mã của Nút. sever js và ứng dụng React

MongoDB có thật không

Với MongoDB, những doanh nghiệp hoàn toàn có thể phân tích mọi tài liệu tại chỗ và đáp ứng thông tin rõ ràng theo thời gian thực .

Làm cách nào để lấy tài liệu Thời gian thực từ MongoDB?

4 phương pháp để nhận những bản update cơ sở tài liệu theo thời gian thực từ MongoDB . Móc trong lớp cơ sở tài liệu của ứng dụng. Đây là một cách tiếp cận rất đơn giản và không còn nhiều điều để lý giải. . Kéo và tìm khác kết quả truy vấn. Đây là một cách tiếp cận nâng cao hơn một chút ít, đã từng được sử dụng trong Sao băng cho tới phiên bản 0. 7. . nối đuôi oplog. . Thay đổi luồng

MongoDB Atlas có thật không

Atlas tương hỗ những chỉ số hiệu suất theo thời gian thực cho những quy trình mongod hoặc mongos và cụm tập hợp bản sao . Đối với những cụm được phân đoạn, bạn hoàn toàn có thể xem số liệu hiệu suất theo thời gian thực cho từng bộ bản sao phân đoạn. Bạn phải có vai trò người tiêu dùng Project Owner Atlas để truy cập tab Thời gian thực.

MongoDB có tốt cho tài liệu chuỗi thời gian không?

MongoDB là cơ sở tài liệu có mục tiêu chung nhờ vào tài liệu với thiết kế lược đồ linh hoạt và ngôn từ truy vấn phong phú. Kể từ MongoDB 5. 0, MongoDB vốn tương hỗ tài liệu chuỗi thời gian . Tải thêm tài liệu liên quan đến nội dung bài viết MongoDB thời gian thực programming mongodb

Video MongoDB thời gian thực ?

Bạn vừa đọc Post Với Một số hướng dẫn một cách rõ ràng hơn về Review MongoDB thời gian thực tiên tiến nhất

Share Link Down MongoDB thời gian thực miễn phí

Người Hùng đang tìm một số trong những ShareLink Download MongoDB thời gian thực Free.

Thảo Luận thắc mắc về MongoDB thời gian thực

Nếu sau khi đọc nội dung bài viết MongoDB thời gian thực vẫn chưa hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Tác giả lý giải và hướng dẫn lại nha #MongoDB #thời #gian #thực - 2022-12-23 16:50:11

Post a Comment