JavaScript trong MongoDB
MongoDB là cơ sở dữ liệu NoSQL mã nguồn mở nổi tiếng được xây dựng trên ngôn ngữ lập trình C++. MongoDB là một cơ sở dữ liệu hướng tài liệu sử dụng các tài liệu giống như JSON và Lược đồ động để lưu trữ thông tin. Điều đó có nghĩa là trong khi lưu dữ liệu của bạn, bạn sẽ không phải lo lắng về Cấu trúc dữ liệu, số lượng trường hoặc loại trường được sử dụng để lưu trữ giá trị. Các đối tượng JSON giống với Tài liệu MongoDB Show
Bạn có thể thay đổi cấu trúc của các bản ghi bằng cách thêm các trường mới hoặc xóa các trường hiện có (mà MongoDB gọi là Tài liệu). Chức năng này có thể được sử dụng để mô tả Mối quan hệ phân cấp, Mảng lưu trữ và các Cấu trúc dữ liệu tinh vi hơn khác trong MongoDB. MongoDB đang được sử dụng để lưu trữ khối lượng dữ liệu khổng lồ bởi một số công ty kỹ thuật số, bao gồm Facebook, eBay, Adobe và Google Các tính năng chính của MongoDBMongoDB có nhiều tính năng độc đáo khiến nó trở thành một sự thay thế tốt hơn so với các cơ sở dữ liệu tiêu chuẩn khác. Một số đặc điểm này như sau
JavaScript là gì?Nguồn hình ảnhJavaScript là ngôn ngữ lập trình đơn giản cho phép người dùng thêm các tính năng và chức năng nâng cao vào trang web. Nó cung cấp hành vi cho một trang web và javascript được sử dụng bởi khoảng 97% tất cả các trang web trên internet. Về phía máy khách, các trang web sử dụng JavaScript và thường xuyên sử dụng các thư viện của bên thứ ba. Để chạy mã JavaScript trên thiết bị của khách hàng, tất cả các trình duyệt web chính đều có công cụ JavaScript. Trang web tĩnh được chuyển đổi thành trang web tương tác bằng JavaScript JavaScript là ngôn ngữ kịch bản để xây dựng các ứng dụng nối mạng. Bạn có thể viết JavaScript trong bất kỳ trình chỉnh sửa mã hoặc trình chỉnh sửa tệp nào, lưu tệp với. js và chạy nó trong bất kỳ trình duyệt web chính nào mà không phải cài đặt bất kỳ gói hoặc thư viện nào khác Các tính năng chính của JavaScriptSau đây là một số tính năng của JavaScript
Đơn giản hóa MongoDB ETL bằng Đường ống dữ liệu không mã của HevoDữ liệu Hevo là Đường ống dữ liệu không có mã cung cấp giải pháp được quản lý hoàn toàn để thiết lập Tích hợp dữ liệu cho hơn 100 nguồn dữ liệu (bao gồm hơn 40 nguồn miễn phí) và sẽ cho phép bạn tải trực tiếp dữ liệu từ các nguồn như MongoDB đến Kho dữ liệu hoặc Đích . Nó sẽ tự động hóa luồng dữ liệu của bạn trong vài phút mà không cần viết bất kỳ dòng mã nào. Kiến trúc chịu lỗi của nó đảm bảo rằng dữ liệu của bạn được an toàn và nhất quán. Hevo cung cấp cho bạn một giải pháp thực sự hiệu quả và hoàn toàn tự động để quản lý dữ liệu theo thời gian thực và luôn có sẵn dữ liệu để phân tích. Bắt đầu với Hevo miễn phíCùng điểm qua một số tính năng nổi bật của Hevo
Các bước cấu hình MongoDB JavaScript (NodeJS)Bước 1. Cài đặt trình điều khiển NodeJS và MongoDB JavaScript (NodeJS)Trước tiên, hãy đảm bảo rằng bạn có phiên bản Node. js được hỗ trợ. nút 4. x trở lên là bắt buộc đối với phiên bản Trình điều khiển MongoDB JavaScript (NodeJS) hiện tại. Nút. js 14. 15. 4 đang được sử dụng cho những ví dụ này. Để biết thêm thông tin về phiên bản Node. js được yêu cầu cho mỗi phiên bản trình điều khiển MongoDB JavaScript (NodeJS), hãy xem tài liệu Tương thích MongoDB Trình điều khiển MongoDB JavaScript (NodeJS) giúp dễ dàng làm việc với cơ sở dữ liệu MongoDB từ Node. ứng dụng js. Để kết nối với cơ sở dữ liệu của bạn và chạy các truy vấn được thảo luận trong loạt bài Bắt đầu nhanh này, bạn sẽ cần trình điều khiển MongoDB JavaScript (NodeJS). Nếu bạn chưa cài đặt Trình điều khiển MongoDB JavaScript (NodeJS), hãy sử dụng lệnh sau để thực hiện
Trình điều khiển MongoDB JavaScript (NodeJS) này đã được cài đặt với phiên bản 3. 6. 4 tại thời điểm viết. Số phiên bản trình điều khiển MongoDB JavaScript (NodeJS) hiện tại có thể được tìm thấy bằng cách chạy npm list mongodb. Xem tài liệu chính thức để biết thêm thông tin về cài đặt và trình điều khiển MongoDB JavaScript (NodeJS) Bước 2. Tạo một cụm miễn phí và nhận thông tin kết nối của cụm của bạn
Xem tài liệu chính thức để biết thêm thông tin về cách sử dụng Trình hướng dẫn kết nối và làm theo các quy trình nêu trên Bước 3. Nhập MongoClientMongoClient là bản xuất từ mô-đun MongoDB mà bạn sẽ sử dụng để kết nối với Cơ sở dữ liệu MongoDB. Bạn có thể kết nối với một cụm, truy cập cơ sở dữ liệu trong cụm đó và kết thúc kết nối với cụm đó bằng phiên bản MongoClient
Bước 4. Tạo chức năng chính của bạnHãy tạo một hàm không đồng bộ main() kết nối với Cụm MongoDB của chúng tôi, gọi các phương thức truy vấn cơ sở dữ liệu của chúng tôi và sau đó ngắt kết nối khỏi Cụm của bạn
Inside main(), the first thing we need to do is construct a constant for our connection URI. The connection URI is the connection string you copied in the previous section and pasted into Atlas. Remember to adjust
Bạn có thể xây dựng một phiên bản MongoClient ngay bây giờ khi bạn biết URL
Bây giờ bạn đã sẵn sàng kết nối với Cụm của chúng tôi với MongoClient. Một lời hứa sẽ được trả lại bởi khách hàng. liên kết(). Khi bạn sử dụng máy khách. connect(), bạn sẽ sử dụng từ khóa đang chờ để biểu thị rằng bạn không nên làm gì khác cho đến khi thao tác đó kết thúc
Bây giờ bạn đã sẵn sàng làm việc với cơ sở dữ liệu của mình. Hãy tạo một hàm báo cáo tên cơ sở dữ liệu trong Cụm này. Để tăng khả năng đọc phần mềm của bạn, bạn nên đặt logic này vào các hàm được đặt tên rõ ràng. Khi bạn tìm hiểu cách xây dựng các loại truy vấn khác nhau, bạn sẽ tạo các hàm mới giống với hàm bạn đang tạo ở đây trong suốt các bước này. Bây giờ hãy gọi một phương thức listDatabases()
Để xử lý bất kỳ sự cố không mong muốn nào, hãy gói các lệnh gọi của bạn đến các chức năng giao tiếp với cơ sở dữ liệu trong câu lệnh try/catch
Bạn sẽ kết thúc quá trình thử/bắt bằng câu lệnh cuối cùng để đảm bảo rằng bạn đã đóng kết nối với Cụm ________số 8_______Bạn phải gọi hàm main() của chúng ta sau khi nó được viết. Hãy sử dụng bảng điều khiển để gửi lỗi
Khi tất cả được đặt cùng nhau, hàm main() và lời gọi hàm sẽ trông như thế này 0Bước 5. Liệt kê các cơ sở dữ liệu trong cụm của bạnChức năng này sẽ lấy danh sách cơ sở dữ liệu của Cụm của bạn và xuất kết quả ra bàn điều khiển 1Bạn đã đặt rất nhiều mã tại chỗ. Lưu các thay đổi của bạn và đổi tên kết nối tệp. js để phản ánh những thay đổi của bạn. Truy cập repo GitHub của nodejs-quickstart để xem bản sao của toàn bộ tệp Bước 6. Triển khai Tập lệnh NodeJS của bạnBây giờ là lúc để kiểm tra mã của bạn. Chạy lệnh sau trong thiết bị đầu cuối của bạn để thực thi tập lệnh của bạn. 2Một số cách khác để kết nối với MongoDB là gì?Kết nối với Bộ bản saoTriển khai bộ bản sao MongoDB là một tập hợp các phiên bản được liên kết, tất cả đều chứa cùng một dữ liệu. Dự phòng dữ liệu và tính khả dụng dữ liệu tuyệt vời được cung cấp bởi sự kết hợp các phiên bản này Để kết nối với triển khai bộ bản sao, hãy sử dụng tên máy chủ và số cổng của từng phiên bản được phân tách bằng dấu phẩy trong chuỗi kết nối, cũng như tên bộ bản sao làm giá trị của tùy chọn Bộ bản sao 3Theo mặc định, trình điều khiển MongoDB JavaScript (NodeJS) thực hiện các tác vụ sau trong khi thiết lập kết nối
Kết nối với Máy chủ MongoDB trên Phiên bản cục bộ của bạnBạn phải thực hiện các bước sau nếu cần chạy Máy chủ MongoDB trên PC cục bộ của mình vì lý do phát triển thay vì sử dụng Cụm Atlas
Chỉ định chuỗi kết nối của bạn trong mã kết nối trình điều khiển MongoDB JavaScript (NodeJS) sau khi bạn đã khởi động thành công Máy chủ MongoDB của mình If your MongoDB Server is locally installed, you can use the connection string “mongodb://localhost: Làm cách nào để sử dụng Giao dịch MongoDB trong NodeJS?Hầu hết các trường hợp sử dụng không bắt buộc phải sử dụng các giao dịch Javascript MongoDB đa tài liệu, như bạn có thể đã phát hiện ra khi làm việc với MongoDB. Bạn sẽ hiếm khi cần thực hiện một giao dịch nhiều tài liệu nếu bạn lập mô hình dữ liệu của mình bằng cách sử dụng quy tắc ngón tay cái của chúng tôi. Dữ liệu được truy cập cùng nhau phải được lưu giữ cùng nhau. Thật vậy, thật khó để đưa ra một trường hợp sử dụng cho bộ dữ liệu Airbnb yêu cầu giao dịch nhiều tài liệu Đây là một ví dụ hợp lý. Giả sử mọi người có thể đặt chỗ trong cơ sở dữ liệu sample_airbnb Bước 1. Tạo giao dịch trong nút. jsNhận bản sao của nút. Mẫu jsĐây là một mẫu cơ bản cho một Nút. js truy cập cụm Atlas để giúp việc theo dõi bài đăng trên blog này dễ dàng hơn
Bạn có thể chạy tệp này trong trình bao của mình bằng cách nhập giao dịch nút. js. Không có đầu ra nào được mong đợi tại thời điểm này vì tệp chỉ mở và đóng kết nối với cụm Atlas của bạn. Nếu bạn gặp phải DeprecationWarnings, hãy tạm thời bỏ qua chúng Tạo chức năng trợ giúpHãy bắt đầu bằng cách xây dựng Hàm trợ giúp. Chức năng này tạo một tài liệu đặt phòng mà bạn sẽ sử dụng sau này trong giao dịch. js, dán chức năng sau 4Đây là một ví dụ về những gì chức năng này làm để cung cấp cho bạn một bức tranh rõ hơn về những gì nó làm. Hàm này có thể được gọi từ bên trong hàm main() 5Sau đây là những gì chức năng sẽ trả về 6Tạo chức năng cho giao dịchHãy tạo một chức năng sẽ đặt chỗ trong cơ sở dữ liệu Tạo một phương thức không đồng bộ có tên là createReservation trong khi vẫn hoạt động trong giao dịch. js. Hàm phải lấy MongoClient làm tham số, cũng như địa chỉ email của người dùng, tên của danh sách Airbnb, ngày đặt phòng và bất kỳ chi tiết đặt phòng nào khác 7Bây giờ bạn phải có quyền truy cập vào các bộ sưu tập sẽ được cập nhật trong chức năng này. Để tạoReservation(), hãy thêm đoạn mã sau 8Hãy bắt đầu bằng cách gọi hàm trợ giúp mà bạn đã phát triển trong phần trước để xây dựng tài liệu đặt phòng. Trong createReservation(), dán đoạn mã sau 9Một phiên phải được liên kết với từng giao dịch và quy trình liên quan. Bắt đầu một phiên phía sau mã hiện có trong createReservation() 0Bạn có khả năng xác định các lựa chọn giao dịch. Thông tin thêm về các tùy chọn này có thể được tìm thấy trong MongoDB JavaScript (NodeJS). Thay thế mã cũ trong createReservation() bằng mã sau 1Tạo một khối thử bên dưới mã hiện có trong createReservation(), theo sau là khối bắt và cuối cùng là khối cuối cùng 2Để bắt đầu một giao dịch, thực hiện chức năng gọi lại và cam kết (hoặc hủy bỏ nếu không thành công), bạn có thể sử dụng phương thức withTransaction() của ClientSession. Bạn phải cung cấp một phương thức cho withTransaction() sẽ chạy bên trong giao dịch. Trong vòng try{}, thêm lệnh gọi withTransaction(). Hãy bắt đầu bằng cách cung cấp withTransaction() một hàm không đồng bộ ẩn danh 3Bạn đang cung cấp một chức năng gọi lại ẩn danh cho withTransaction() mà hiện tại không có tác dụng gì. Hãy bắt đầu xây dựng từng thủ tục cơ sở dữ liệu mà bạn muốn gọi từ bên trong chức năng đó. Để bắt đầu, bạn sẽ thêm đặt chỗ vào mảng đặt chỗ trong tài liệu người dùng có liên quan. Bên trong hàm ẩn danh đang được cung cấp cho withTransaction(), hãy dán đoạn mã sau 4Bạn nên kiểm tra xem ngày đặt trước đã được nêu trong mảng dateReserve của nhà/phòng cho thuê hay chưa để đảm bảo rằng nhà/phòng cho thuê Airbnb không bị đặt trùng ngày cho bất kỳ ngày cụ thể nào. Nếu đây là trường hợp, bạn nên hủy giao dịch. Bản cập nhật đối với tài liệu người dùng mà bạn đã thực hiện ở bước trước sẽ được khôi phục nếu giao dịch bị hủy bỏ. Thay thế mã hiện tại trong hàm ẩn danh bằng mã sau 5Điều cuối cùng bạn cần làm trong giao dịch là thêm ngày đặt trước vào mảng ngày thu thập của listingsAndReviews Reserved. Thay thế mã hiện tại trong hàm ẩn danh bằng mã sau 6Nếu thỏa thuận đi qua, bạn sẽ muốn biết. Bạn sẽ biết giao dịch thành công nếu giao dịchResults được xác định. Nếu giao dịchResults không được xác định, bạn sẽ biết mã đã bị hủy bỏ có chủ đích. Dán đoạn mã sau bên dưới định nghĩa của hằng số transactionResults 7Hãy theo dõi bất kỳ lỗi nào xảy ra. Bên trong bắt(e), dán như sau 8Bất cứ điều gì xảy ra, bạn phải tạm dừng cuộc họp này. Cuối cùng, dán phần sau vào bên trong {} 9Sau đây là chức năng của bạn sẽ trông như thế nào trong Mongodb Javascript vào thời điểm này 0Bước 2. Tạo giao dịch trong nút. jsHãy thử nghiệm chức năng mới của chúng ta ngay bây giờ khi bạn đã xây dựng một chức năng tạo đặt chỗ bằng cách sử dụng giao dịch. Hãy đặt chỗ cho Leslie cho các đêm 31/12/2019 và 01/01/2020 tại danh sách “Infinite Views” Gọi hàm createReservation() của bạn trong hàm main(), bên dưới dòng có nội dung Thực hiện các cuộc gọi DB thích hợp 1Tạo bản sao lưu tệp Mongodb Javascript của bạn. Trong trình bao của bạn, hãy chạy giao dịch nút. js để chạy tập lệnh của bạn Trong vỏ của bạn, đầu ra sau sẽ xuất hiện 2Đặt trước hiện có trong tài liệu của Leslie trong bộ sưu tập người dùng 3Ngày đặt phòng hiện được bao gồm trong danh sách “Lượt xem vô hạn” của bộ sưu tập danh sáchAndReviews 4Hiểu các hoạt động CRUD của MongoDB JavaScript (NodeJS)1) TạoTạo một tài liệuHãy bắt đầu bằng cách tạo một danh sách Airbnb hoàn toàn mới. Bạn có thể đạt được điều này bằng cách sử dụng lệnh insertOne() của Bộ sưu tập. Chèn một tài liệu vào bộ sưu tập với insertOne(). Tài liệu mới (thuộc loại đối tượng) sẽ được chèn vào tham số cần thiết duy nhất. Nếu tài liệu mới của bạn không có cột _id, trình điều khiển MongoDB JavaScript (NodeJS) sẽ tự động tạo một cột cho chúng tôi Sau đây là cách thức hoạt động của chức năng tạo danh sách mới 5Chức năng này có thể được gọi bằng cách chuyển một MongoClient được kết nối và một đối tượng chứa thông tin danh sách 6Sau đây là một ví dụ về đầu ra 7Vì bạn không bao gồm trường có tên _id trong tài liệu, nên trình điều khiển MongoDB JavaScript (NodeJS) đã tự động tạo trường đó. Tài liệu bạn tạo sẽ có _id khác với tài liệu được chỉ ra ở trên. Tạo nhiều tài liệuĐôi khi, bạn có thể muốn chèn nhiều tài liệu cùng một lúc. Bạn có tùy chọn gọi liên tục insertOne(). Vấn đề là, tùy thuộc vào cách mã của bạn được thiết kế, cuối cùng bạn có thể phải đợi mỗi thao tác chèn hoàn tất trước khi chuyển sang thao tác tiếp theo, dẫn đến mã chậm Thay vào đó, bạn có thể sử dụng phương thức insertMany() của Collection. insertMany() sẽ điền vào bộ sưu tập của bạn một mảng tài liệu Một điều cần lưu ý với insertMany() là nó có thể được đặt hàng. Nếu thứ tự là đúng, các tài liệu sẽ được đặt trong mảng theo thứ tự được chỉ định. Các tài liệu còn lại sẽ không được chèn nếu bất kỳ thao tác chèn nào không thành công (ví dụ: nếu bạn cố gắng chèn một tài liệu có _id đã được sử dụng bởi một tài liệu khác trong bộ sưu tập). Nếu một thứ tự sai, các tài liệu sẽ không được đặt theo thứ tự được chỉ định của mảng. Bất kể có bất kỳ thao tác chèn nào khác không thành công hay không, MongoDB sẽ cố gắng chèn tất cả tài liệu vào mảng đã chỉ định. Đã đặt hàng được đặt thành đúng theo mặc định Hãy xây dựng một chức năng sẽ tạo ra một số danh sách Airbnb 8Chức năng này có thể được gọi bằng cách chuyển MongoClient được kết nối và một mảng đối tượng chứa thông tin danh sách 9Sau đây là một ví dụ về đầu ra của việc gọi hàm createMultipleListings() 0Khi bạn sử dụng insertOne(), Trình điều khiển JavaScript MongoDB (NodeJS) sẽ tự động tạo trường _id cho bạn. Khi bạn gọi insertMany(), Trình điều khiển JavaScript MongoDB (NodeJS) đã tạo lại trường _id cho bạn 2) Cập nhậtCập nhật một tài liệuUpsert là một trong những tham số bạn có thể cung cấp cho updateOne(). Upsert là một công cụ hữu ích cho phép bạn cập nhật hoặc chèn tài liệu nếu tài liệu đã tồn tại Hãy tưởng tượng bạn muốn đảm bảo rằng một nhà/phòng cho thuê trên Airbnb với một tên cụ thể có số lượng phòng ngủ và phòng tắm cụ thể. Trước tiên, bạn phải sử dụng findOne() để xem tài liệu có tồn tại hay không nếu bạn không sử dụng upsert. Nếu tài liệu đã tồn tại, bạn sẽ cập nhật nó bằng updateOne(). Bạn sẽ sử dụng insertOne() để tạo tài liệu nếu nó chưa tồn tại. Bạn có thể gói tất cả các khả năng đó vào một lệnh bằng cách sử dụng upert Với một sửa đổi quan trọng, chức năng thêm một danh sách với một tên nhất định có thể gần giống với chức năng được xác định ở trên. Trong đối số tùy chọn cho updateOne(), bạn sẽ chuyển {upsert. ĐÚNG VẬY} 1Hãy tưởng tượng bạn không chắc liệu danh sách có tên "Cozy Cottage" có tồn tại trong cơ sở dữ liệu hay không, nếu danh sách đó chứa thông tin lỗi thời. Trong mọi trường hợp, bạn muốn đảm bảo rằng thông tin trong bộ sưu tập được cập nhật. Với một MongoClient được kết nối, tên của danh sách và một đối tượng chứa dữ liệu cập nhật sẽ có trong danh sách, bạn có thể chạy upsertListingByName() 2Nếu tài liệu chưa từng có trước đây, đầu ra của hàm sẽ giống như thế này 3Trong bộ sưu tập listingsAndReviews, bạn đã bao gồm một tài liệu mới 4Bạn có thể sử dụng lại upsertListingByName() nếu chúng ta tìm hiểu thêm về danh sách “Cozy Cottage” 5Và bạn sẽ nhận được kết quả như sau 6Một trường mới gọi là "giường" đã được thêm vào giấy 7Cập nhật nhiều tài liệuBạn có thể muốn thay đổi nhiều tài liệu cùng một lúc. Trong trường hợp này, bạn có thể sử dụng phương thức updateMany() của Bộ sưu tập. updateMany(), như updateOne(), mong đợi một bộ lọc của đối tượng loại và bản cập nhật của đối tượng loại. Bạn cũng có thể chọn bao gồm các tùy chọn đối tượng loại 3) XóaXóa một tài liệuĐể bắt đầu, hãy xóa một danh sách Airbnb khỏi bộ sưu tập danh sáchAndReviews Bạn có thể xóa một tài liệu bằng cách sử dụng phương thức deleteOne() trong Bộ sưu tập. Chỉ cần một tham số cho deleteOne(). bộ lọc đối tượng. Bộ lọc được sử dụng để tìm tài liệu cần xóa. Bộ lọc tương tự như tham số truy vấn bạn đã sử dụng trong findOne() và tham số bộ lọc bạn đã sử dụng trong updateOne(). Bạn có thể tìm kiếm tất cả các tài liệu trong bộ sưu tập bằng cách bao gồm các thuộc tính bằng 0 trong bộ lọc hoặc bạn có thể tinh chỉnh tìm kiếm của mình bằng cách bao gồm một hoặc nhiều thuộc tính Tùy chọn, deleteOne() có một tham số tùy chọn. Để biết thêm thông tin về những lựa chọn này, hãy xem tài liệu xóaOne() deleteOne() xóa tài liệu đầu tiên khớp với truy vấn đã chỉ định. Chỉ một tài liệu sẽ bị hủy nếu có nhiều tài liệu khớp với truy vấn. Tài liệu đầu tiên được tìm thấy theo thứ tự tự nhiên sẽ bị xóa nếu bạn không cung cấp bộ lọc Giả sử bạn muốn xóa danh sách Airbnb có tên cụ thể. Để làm điều này, bạn có thể sử dụng deleteOne(). Tên của danh sách sẽ được bao gồm trong tham số bộ lọc. Bạn có thể viết một hàm để xóa danh sách có tên cụ thể khỏi cơ sở dữ liệu 8Hãy tưởng tượng bạn muốn xóa danh sách Airbnb “Cozy Cottage” mà bạn đã tạo trước đó trong phần này. Bằng cách đặt một MongoClient được kết nối và tên “Cozy Cottage”, bạn có thể gọi deleteListingsByName() 9Đầu ra của việc chạy lệnh trên như sau 0Xóa nhiều tài liệuBạn có thể muốn xóa nhiều tài liệu cùng một lúc. Trong trường hợp này, bạn có thể sử dụng phương thức deleteMany() của Bộ sưu tập. deleteMany(), giống như deleteOne(), yêu cầu bộ lọc đối tượng được thông qua. Bạn cũng có thể chọn bao gồm các tùy chọn đối tượng loại Giả sử bạn muốn loại bỏ các tài liệu đã lâu không được cập nhật. Với bộ lọc tìm kiếm các tài liệu được cạo trước một ngày nhất định, bạn có thể chạy deleteMany(). Sau đây là một ví dụ về chức năng 1Với một MongoClient được kết nối và một phiên bản Date đại diện cho ngày 15 tháng 2, bạn có thể thực thi deleteListingsScraped BeforeDate() để xóa các danh sách được loại bỏ trước ngày 15 tháng 2 năm 2019 2Khi bạn chạy lệnh trên, bạn sẽ nhận được đầu ra sau 3Bộ sưu tập của chúng tôi hiện chỉ chứa các tài liệu đã bị loại bỏ gần đây 4) ĐọcĐọc một tài liệuHãy bắt đầu bằng cách tìm kiếm danh sách các danh sáchAndReviews cho một danh sách Airbnb theo tên Bạn có thể sử dụng findOne() của Bộ sưu tập để tìm tài liệu. Tài liệu đầu tiên phù hợp với truy vấn được cung cấp sẽ được trả về bởi findOne(). Chỉ một tài liệu sẽ được trả về, ngay cả khi có nhiều tài liệu phù hợp với truy vấn Chỉ có một tham số cần thiết cho findOne(). truy vấn đối tượng. MongoDB sẽ sử dụng 0 hoặc nhiều thuộc tính trong đối tượng truy vấn để tìm tài liệu trong bộ sưu tập. Bạn chỉ có thể chuyển một đối tượng trống để truy vấn tất cả tài liệu trong bộ sưu tập mà không hạn chế kết quả của mình theo bất kỳ cách nào Bạn sẽ bao gồm trường tên trong đối tượng truy vấn mà chúng tôi gửi tới findOne() vì bạn muốn tìm danh sách Airbnb với một tên nhất định 4Sau đây là một ví dụ về chức năng tìm danh sách bằng cách truy vấn trường tên 5Chức năng này có thể được gọi bằng cách cung cấp MongoClient được kết nối và tên của danh sách bạn muốn tìm. Hãy tìm danh sách “Chế độ xem vô hạn” mà bạn đã tạo trước đó trong phần này 6Sản phẩm cuối cùng sẽ trông giống như thế này 7Điều quan trọng cần lưu ý là _id của tài liệu trong cơ sở dữ liệu của bạn sẽ khác với _id trong ví dụ đầu ra ở trên Đọc nhiều tài liệuGiờ hãy xem cách truy vấn nhiều tài liệu cùng lúc khi bạn đã biết cách truy vấn một mục. Bạn có thể làm như vậy bằng cách quay số định vị của Bộ sưu tập bằng cách sử dụng find() Đối tượng truy vấn là tham số ban đầu cho find(), giống như đối tượng findOne(). Trong đối tượng truy vấn, bạn có thể bao gồm từ 0 đến nhiều thuộc tính Giả sử bạn muốn tìm tất cả nhà/phòng cho thuê trên Airbnb có ít nhất hai phòng ngủ và hai phòng tắm. Bạn có thể thực hiện điều đó bằng cách quay số sau 8Như bạn có thể thấy, đối tượng truy vấn của bạn có hai thuộc tính. một cho phòng ngủ và một cho phòng tắm. Toán tử truy vấn so sánh $gte có thể được sử dụng để tìm tài liệu có phòng ngủ lớn hơn hoặc bằng một số nhất định. Bạn có thể làm tương tự để đáp ứng nhu cầu về số lượng phòng vệ sinh nhất định. Các toán tử truy vấn so sánh khác có sẵn trong MongoDB và có thể được sử dụng trong các truy vấn của bạn. Một con trỏ sẽ được trả về bởi truy vấn trên. Con trỏ là một công cụ để duyệt tập kết quả của truy vấn Các chức năng của con trỏ cũng có thể được sử dụng để thay đổi tài liệu nào được đưa vào kết quả. Hãy tưởng tượng bạn muốn sắp xếp các kết quả của chúng tôi để những kết quả có đánh giá gần đây nhất xuất hiện đầu tiên. Trường đánh giá cuối cùng có thể được sử dụng để sắp xếp kết quả bằng cách sử dụng hàm sort() của Con trỏ. Bạn có thể sắp xếp kết quả theo thứ tự giảm dần (bằng cách cung cấp -1 cho sort()) để trả về danh sách có đánh giá gần đây nhất trước tiên. Truy vấn hiện tại có thể được cập nhật để trông như thế này 9Có 192 tài liệu trong thư viện phù hợp với truy vấn trên. Hãy tưởng tượng bạn không muốn tập lệnh xử lý nhiều kết quả đó. Thay vào đó, bạn muốn giới hạn những phát hiện của mình trong một số lượng tài liệu nhỏ hơn. Bạn có thể sử dụng giới hạn để thêm phương thức sort() khác vào truy vấn hiện có. giới hạn (), như tên gọi, đặt giới hạn của con trỏ. Giờ đây, bạn có thể sửa đổi truy vấn để nó chỉ trả về một số kết quả nhất định 0Bạn có thể lặp qua con trỏ để nhận từng kết quả một. Thay vào đó, bạn có thể sử dụng hàm toArray() của Con trỏ để truy xuất tất cả các kết quả của chúng tôi trong một mảng. Mã của bạn bây giờ có vẻ như sau 1Hãy bọc truy vấn trong một hàm không đồng bộ và thêm chức năng để in kết quả ngay bây giờ khi bạn đã sẵn sàng sử dụng 2Chức năng này có thể được gọi bằng cách chuyển một MongoClient được kết nối cũng như một đối tượng có các thuộc tính xác định số phòng ngủ, phòng tắm tối thiểu và tổng số kết quả 3Nếu bạn đã làm theo hướng dẫn trong phần trước, kết quả sẽ giống như thế này 4Hoạt động tổng hợp MongoDB JavaScript (NodeJS) là gì?Trong MongoDB, Hoạt động tổng hợp là các biểu thức có thể được sử dụng để thu được kết quả rút gọn và tóm tắt. Quy trình tổng hợp trong API truy vấn của MongoDB cho phép bạn xây dựng một quy trình với một hoặc nhiều giai đoạn, mỗi giai đoạn thực hiện một hành động khác nhau trên dữ liệu của bạn Đường ống tổng hợp có thể được so sánh với một dây chuyền lắp ráp ô tô. Sản xuất ô tô bắt buộc phải sử dụng các trạm lắp ráp được bố trí theo dây chuyền. Máy khoan và máy hàn là một trong những dụng cụ chuyên dụng có sẵn tại mỗi trạm. Nhà máy lắp ráp và biến nguyên vật liệu thô và các bộ phận thành hàng hóa hoàn chỉnh Dây chuyền lắp ráp là đường ống tổng hợp, các trạm lắp ráp là các giai đoạn tổng hợp và các công cụ chuyên dụng là các biểu thức vận hành Các loại chỉ mục trình điều khiển MongoDB JavaScript (NodeJS) khác nhau là gì?1) Chỉ mục duy nhấtCác chỉ mục duy nhất ngăn các giá trị trùng lặp được lưu trữ trong các trường được lập chỉ mục. Trong quá trình hình thành một bộ sưu tập, MongoDB tạo một chỉ mục duy nhất trên cột _id theo mặc định. Đặt tùy chọn duy nhất thành đúng và cho biết trường hoặc tổ hợp các trường mà bạn muốn tránh trùng lặp để tạo chỉ mục duy nhất Phương thức createIndex() được sử dụng trong ví dụ sau để tạo một chỉ mục duy nhất trên cột TheaterId trong bộ sưu tập các rạp của cơ sở dữ liệu sample_mflix 5Nếu bạn cố viết một giá trị trùng lặp vi phạm chỉ mục duy nhất, MongoDB sẽ đưa ra một lỗi giống như thế này 62) Chỉ mục không gian địa lýMongoDB sử dụng các chỉ mục 2dsphere để hỗ trợ các truy vấn trên dữ liệu tọa độ không gian địa lý. Bạn có thể truy vấn dữ liệu Không gian địa lý để bao gồm, giao lộ và vùng lân cận bằng cách sử dụng chỉ mục 2dsphere Bạn phải chỉ định một trường chỉ chứa các đối tượng GeoJSON để tạo chỉ mục 2dsphere. Địa điểm. trường địa lý trong tài liệu mẫu sau đây từ bộ sưu tập rạp hát của cơ sở dữ liệu sample_mflix là đối tượng Điểm GeoJSON mô tả tọa độ của rạp hát 7Để cho phép tìm kiếm địa lý, ví dụ sau sử dụng phương thức createIndexes() để tạo chỉ mục 2dsphere trên vị trí. trường địa lý trong bộ sưu tập rạp chiếu phim trong cơ sở dữ liệu sample_mflix 8Để tính toán khoảng cách trên mặt phẳng Euclide và làm việc với thuật ngữ "cặp tọa độ kế thừa" được sử dụng trong MongoDB 2. 2 trở về trước, MongoDB hỗ trợ thêm các chỉ mục 2d. 3) Chỉ mục văn bảnTruy vấn tìm kiếm văn bản trên nội dung chuỗi được hỗ trợ bởi Chỉ mục văn bản. Bất kỳ trường nào có giá trị là một chuỗi hoặc một mảng các phần tử chuỗi đều có thể được đưa vào các chỉ mục này. MongoDB có khả năng tìm kiếm văn bản cho nhiều ngôn ngữ. Khi xây dựng chỉ mục, bạn có tùy chọn chỉ định ngôn ngữ mặc định. Để biết thêm chi tiết, hãy xem hướng dẫn của chúng tôi về truy vấn tìm kiếm văn bản Ví dụ sau tạo một chỉ mục văn bản trên trường fullplot trong bộ sưu tập phim trong cơ sở dữ liệu sample_mflix bằng cách sử dụng hàm createIndex() với ngôn ngữ mặc định là tiếng Anh 9Truy vấn bên dưới là một ví dụ về truy vấn mà chỉ mục được tạo ở trên sẽ bao gồm. Bởi vì các chỉ mục văn bản không cung cấp thứ tự sắp xếp, sắp xếp được bỏ qua 04) Chỉ mục đa phímMultikey Indexes là các chỉ mục cải thiện hiệu quả truy vấn khi các chỉ mục tăng dần hoặc giảm dần được sử dụng trên các trường có giá trị mảng. Một chỉ mục đa khóa có thể được tạo bằng cú pháp giống như một trường đơn hoặc chỉ mục phức hợp Phương thức createIndex() được sử dụng trong ví dụ sau để tạo chỉ mục tăng dần trên trường cast (mảng tên) trong bộ sưu tập phim của cơ sở dữ liệu sample_mflix 1Truy vấn bên dưới là một ví dụ về truy vấn mà chỉ mục được tạo ở trên sẽ bao gồm 25) Chỉ mục trường đơnChỉ mục trường đơn tăng hiệu suất truy vấn bằng cách chỉ định thứ tự sắp xếp tăng dần hoặc giảm dần trên một trường duy nhất của tài liệu Phương thức createIndex() được sử dụng trong ví dụ sau để tạo chỉ mục thứ tự tăng dần trên trường tiêu đề trong bộ sưu tập phim của cơ sở dữ liệu sample_mflix 3Truy vấn bên dưới là một ví dụ về truy vấn mà chỉ mục được tạo ở trên sẽ bao gồm 46) Chỉ số hợp chấtChỉ mục tổng hợp là các chỉ mục cải thiện hiệu suất truy vấn khi các trường khác nhau của tài liệu được sắp xếp theo thứ tự tăng dần hoặc giảm dần. Mỗi trường trong chỉ mục phải có hướng riêng (tăng dần hoặc giảm dần) Phương thức createIndex() được sử dụng trong ví dụ sau để tạo chỉ mục tổng hợp trên các trường loại và thể loại trong bộ sưu tập phim của cơ sở dữ liệu sample_mflix 5Truy vấn bên dưới là một ví dụ về truy vấn mà chỉ mục được tạo ở trên sẽ bao gồm 6Phần kết luậnBạn đã tìm hiểu về các bước cốt lõi cần thực hiện trong MongoDB Javascript (NodeJS) Connector trong bài viết này. Sau đó, bạn đã xem cách sử dụng các Hoạt động và chỉ mục CRUD MongoDB Javascript (NodeJS). Đặt Trình kết nối Javascript MongoDB theo cách thủ công có thể là một thách thức đặc biệt đối với người mới bắt đầu & đây là lúc Hevo tiết kiệm thời gian Ghé thăm trang web của chúng tôi để khám phá HevoHevo Data, Đường ống dữ liệu không mã cung cấp cho bạn giải pháp nhất quán và đáng tin cậy để quản lý truyền dữ liệu giữa nhiều nguồn khác nhau như MongoDB và nhiều Điểm đến mong muốn khác nhau, với một vài cú nhấp chuột. Hevo Data với khả năng tích hợp mạnh mẽ với hơn 100 nguồn (bao gồm hơn 40 nguồn miễn phí) cho phép bạn không chỉ xuất dữ liệu từ các nguồn dữ liệu mong muốn và tải dữ liệu đó đến đích bạn chọn mà còn chuyển đổi và làm phong phú dữ liệu của bạn để phân tích. Bạn muốn thử Hevo? . Bạn cũng có thể xem giá cạnh tranh nhất sẽ giúp bạn chọn gói phù hợp cho nhu cầu kinh doanh của mình Chia sẻ kinh nghiệm tìm hiểu về MongoDB Javascript (NodeJS). Cho chúng tôi biết trong phần ý kiến dưới đây MongoDB có sử dụng JavaScript không?Mặc dù các phương thức này sử dụng JavaScript, nhưng hầu hết các tương tác với MongoDB không sử dụng JavaScript mà sử dụng trình điều khiển thành ngữ bằng ngôn ngữ của ứng dụng tương tác. Nếu bạn không cần thực hiện thực thi mã JavaScript phía máy chủ, hãy xem Tắt thực thi JavaScript phía máy chủ.
Làm cách nào để kết nối MongoDB với JavaScript?js cho MongoDB, chúng ta phải sử dụng thư viện có tên là Mongoose . cầy mangut. kết nối ("mongodb. //máy chủ cục bộ. 27017/collectionName", { useNewUrlParser. đúng, sử dụngUnifiedTopology. ĐÚNG VẬY }); .
MongoDB có tốt cho nút JS không?Có thể xử lý nhiều loại dữ liệu và lượng dữ liệu khổng lồ . Nó cung cấp một Nút MongoDB. js cung cấp API JavaScript và triển khai giao thức mạng cần thiết để đọc và ghi từ cơ sở dữ liệu MongoDB cục bộ hoặc từ xa. Tất cả những gì bạn phải làm là cài đặt gói NPM -mongodb trong Mã ứng dụng của mình. |