Hướng dẫn mongodb driver c# github - trình điều khiển mongodb c # github
Ở bài số 4 các bạn đã biết cách tải và tham chiếu driver tương tác MongoDB trong C# rồi. Ở bài này chúng ta tiếp tục học cách kết nối và truy vấn dữ liệu MongoDB thông qua các Driver đó (bạn mở lại Project WPF trong bài số 4). Mục tiêu bài này các bạn phải kết nối hiển thị được dữ liệu trong bảng Product lên giao diện Listbox trong WPF như dưới đây: Bước 1:Làm thế nào để Kết nối dữ liệu MongoDB bằng C#? Để kết nối tới MongoDB ta dùng lệnh sau: //tham chiếu thư viện này: using MongoDB.Driver; //Dùng MongoClient để kết nối tới Server MongoClient client = new MongoClient("mongodb://localhost:27017"); //Dùng lệnh GetDatabase để kết nối Cơ sở dữ liệu IMongoDatabase database = client.GetDatabase("QuanLySanPham"); Các Em lưu ý lệnh: mongodb://localhost:27017://localhost:27017 Là cú pháp kết nối lên Server. Chúng ta chỉ đổi localhost thành tên Server(địa chỉ IP) và Port. Còn mọi thứ phải giữ nguyên. Đây là bản Standalone, nếu bạn đang dùng Replica Set thì thay đổi khác chút xíu (Đây là phần nâng cao, khoan hãy quan tâm). Lệnh: client.GetDatabase(“QuanLySanPham“);GetDatabase(“QuanLySanPham“); Dùng để kết nối tới Cơ sở dữ liệu tên là QuanLySanPham, do đó bạn muốn kết nối tới Cơ sở dữ liệu khác thì đổi tên chỗ này là xong.QuanLySanPham, do đó bạn muốn kết nối tới Cơ sở dữ liệu khác thì đổi tên chỗ này là xong. Bước 2: Truy vấn dữ liệu, trong bài này ta sẽ truy vấn bảng Product nha. //Gọi hàm GetCollection để truy suất bảng dữ liệu IMongoCollection collection = database.GetCollection("Product"); //Muốn truy vấn toàn bộ dữ liệu trong bảng dùng lệnh dưới đây: List documents = collection.Find(new BsonDocument()).ToList(); Để lấy dữ liệu từng đối tượng (JSON, vì sao nó là JSon thì các Em xem lại các bài trước, hoặc ở đây) trong documents ra ta làm như sau: //Các em có thể hiểu document là 1 đối tượng đang duyệt (là Json) trong tập các Json được lưu trong biến documents foreach (BsonDocument document in documents) { //Cột Ma (là thuộc tính Ma của đối tượng Product đang duyệt) có kiểu chuỗi string ma = document["Ma"].AsString; //Cột Ten (là thuộc tính Ten của đối tượng Product đang duyệt) có kiểu chuỗi string ten = document["Ten"].AsString; //Cột DonGia (là thuộc tính DonGia của đối tượng Product đang duyệt) có kiểu Double double gia = document["DonGia"].AsDouble; } Coding chi tiết: -Phần XAML (MainWindow.xaml): -Phần Coding(MainWindow.xaml,cs): using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using MongoDB.Bson; using MongoDB.Driver; namespace CSharpMongoDBExample { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void btnGetProduct_Click(object sender, RoutedEventArgs e) { MongoClient client = new MongoClient("mongodb://localhost:27017"); IMongoDatabase database = client.GetDatabase("QuanLySanPham"); IMongoCollection collection = database.GetCollection("Product"); List documents = collection.Find(new BsonDocument()).ToList(); lstProduct.Items.Clear(); foreach (BsonDocument document in documents) { string ma = document["Ma"].AsString; string ten = document["Ten"].AsString; double gia = document["DonGia"].AsDouble; lstProduct.Items.Add(ma + "\t" + ten + "\t" + gia); } } } } Chạy lên ta sẽ kết quả như mong muốn! Bạn có thể tải source code của bài này tại đây: Source code here Bài sau ta sẽ nghiên cứu cách thức tải dữ liệu lớn từ MongoDB về client Các khóa học online khác, bạn có thể tham khảo tại đây: http://communityuni.com/ Chúc các bạn thành công! Không có lệnh, phương thức hoặc tùy chọn nào bị xóa trong MongoDB 4.2 (bao gồm Ghi chúPhiên bản trình điều khiển của bạn phải tương thích với phiên bản máy chủ MongoDB của bạn. Chúng tôi khuyên bạn nên chọn trình điều khiển mới nhất tương thích với phiên bản máy chủ MongoDB của bạn để sử dụng các tính năng cơ sở dữ liệu mới nhất và chuẩn bị cho các nâng cấp phiên bản trong tương lai. Đối với danh sách các phiên bản trình điều khiển chứa toàn bộ chức năng cho phiên bản máy chủ MongoDB của bạn, hãy kiểm tra ma trận tương thích cho trình điều khiển MongoDB của bạn.MongoDB driver.MongoDB driver. Để biết danh sách các phiên bản trình điều khiển mà bạn có thể sử dụng để kết nối với các phiên bản không có máy chủ, hãy xem các phiên bản trình điều khiển tối thiểu cho các phiên bản không có máy chủ. Quan trọngKhi bạn nâng cấp phiên bản trình điều khiển của mình, một số lệnh, phương thức hoặc tùy chọn có thể được không dùng nữa. Kiểm tra tài liệu API Driver MongoDB của bạn để đảm bảo chuyển đổi suôn sẻ.MongoDB driver API documentation to ensure a smooth transition.MongoDB driver API documentation to ensure a smooth transition. Các ứng dụng chạy với trình điều khiển 4.0-series sẽ hoạt động với triển khai cơ sở dữ liệu MongoDB chạy MongoDB 4.4 miễn là:
Chúng tôi khuyên bạn nên sử dụng trình điều khiển sê-ri MongoDB 4.4 với MongoDB 4.4 để sử dụng các tính năng cơ sở dữ liệu mới hơn và chuẩn bị để nâng cấp phiên bản trong tương lai. Khách hàng phải hỗ trợ TLS để kết nối với triển khai cơ sở dữ liệu ATLAS.TLS to connect to an Atlas database deployment.TLS to connect to an Atlas database deployment. Khách hàng phải hỗ trợ tiện ích mở rộng SNI TLS để kết nối với ATLAS //Các em có thể hiểu document là 1 đối tượng đang duyệt (là Json) trong tập các Json được lưu trong biến documents foreach (BsonDocument document in documents) { //Cột Ma (là thuộc tính Ma của đối tượng Product đang duyệt) có kiểu chuỗi string ma = document["Ma"].AsString; //Cột Ten (là thuộc tính Ten của đối tượng Product đang duyệt) có kiểu chuỗi string ten = document["Ten"].AsString; //Cột DonGia (là thuộc tính DonGia của đối tượng Product đang duyệt) có kiểu Double double gia = document["DonGia"].AsDouble; }1 Cụm miễn phí hoặc cụm chia sẻ //Các em có thể hiểu document là 1 đối tượng đang duyệt (là Json) trong tập các Json được lưu trong biến documents foreach (BsonDocument document in documents) { //Cột Ma (là thuộc tính Ma của đối tượng Product đang duyệt) có kiểu chuỗi string ma = document["Ma"].AsString; //Cột Ten (là thuộc tính Ten của đối tượng Product đang duyệt) có kiểu chuỗi string ten = document["Ten"].AsString; //Cột DonGia (là thuộc tính DonGia của đối tượng Product đang duyệt) có kiểu Double double gia = document["DonGia"].AsDouble; }2. Để xác minh rằng trình điều khiển MongoDB của bạn hỗ trợ tiện ích mở rộng SNITLS, hãy tham khảo phần tương thích trong tài liệu trình điều khiển của bạn. Nếu trình điều khiển tương thích với MongoDB 4.2 trở lên, nó sẽ hỗ trợ tiện ích mở rộng SNITLS.SNI TLS extension to connect to an Atlas //Các em có thể hiểu document là 1 đối tượng đang duyệt (là Json) trong tập các Json được lưu trong biến documents foreach (BsonDocument document in documents) { //Cột Ma (là thuộc tính Ma của đối tượng Product đang duyệt) có kiểu chuỗi string ma = document["Ma"].AsString; //Cột Ten (là thuộc tính Ten của đối tượng Product đang duyệt) có kiểu chuỗi string ten = document["Ten"].AsString; //Cột DonGia (là thuộc tính DonGia của đối tượng Product đang duyệt) có kiểu Double double gia = document["DonGia"].AsDouble; }1 free cluster or //Các em có thể hiểu document là 1 đối tượng đang duyệt (là Json) trong tập các Json được lưu trong biến documents foreach (BsonDocument document in documents) { //Cột Ma (là thuộc tính Ma của đối tượng Product đang duyệt) có kiểu chuỗi string ma = document["Ma"].AsString; //Cột Ten (là thuộc tính Ten của đối tượng Product đang duyệt) có kiểu chuỗi string ten = document["Ten"].AsString; //Cột DonGia (là thuộc tính DonGia của đối tượng Product đang duyệt) có kiểu Double double gia = document["DonGia"].AsDouble; }2 shared cluster. To verify that your MongoDB driver supports the SNITLS extension, refer to the Compatibility section of your driver's documentation. If the driver is compatible with MongoDB 4.2 and later, it supports the SNITLS extension.SNI TLS extension to connect to an Atlas //Các em có thể hiểu document là 1 đối tượng đang duyệt (là Json) trong tập các Json được lưu trong biến documents foreach (BsonDocument document in documents) { //Cột Ma (là thuộc tính Ma của đối tượng Product đang duyệt) có kiểu chuỗi string ma = document["Ma"].AsString; //Cột Ten (là thuộc tính Ten của đối tượng Product đang duyệt) có kiểu chuỗi string ten = document["Ten"].AsString; //Cột DonGia (là thuộc tính DonGia của đối tượng Product đang duyệt) có kiểu Double double gia = document["DonGia"].AsDouble; }1 free cluster or //Các em có thể hiểu document là 1 đối tượng đang duyệt (là Json) trong tập các Json được lưu trong biến documents foreach (BsonDocument document in documents) { //Cột Ma (là thuộc tính Ma của đối tượng Product đang duyệt) có kiểu chuỗi string ma = document["Ma"].AsString; //Cột Ten (là thuộc tính Ten của đối tượng Product đang duyệt) có kiểu chuỗi string ten = document["Ten"].AsString; //Cột DonGia (là thuộc tính DonGia của đối tượng Product đang duyệt) có kiểu Double double gia = document["DonGia"].AsDouble; }2 shared cluster. To verify that your MongoDB driver supports the SNI TLS extension, refer to the Compatibility section of your driver's documentation. If the driver is compatible with MongoDB 4.2 and later, it supports the SNI TLS extension. Để truy cập triển khai cơ sở dữ liệu, bạn phải kết nối từ địa chỉ IP trên danh sách truy cập IP của dự án Atlas. Nếu bạn cần thêm địa chỉ IP vào danh sách truy cập IP, bạn có thể làm như vậy trong hộp thoại Connect. Bạn cũng có thể thêm địa chỉ IP từ tab truy cập mạng.Connect dialog. You can also add the IP address from the Network Access tab.Connect dialog. You can also add the IP address from the Network Access tab. Để truy cập triển khai cơ sở dữ liệu, bạn phải tạo người dùng cơ sở dữ liệu có quyền truy cập vào (các) cơ sở dữ liệu mong muốn trên triển khai cơ sở dữ liệu ATLAS của bạn. Người dùng cơ sở dữ liệu tách biệt với người dùng Atlas. Người dùng cơ sở dữ liệu có quyền truy cập vào cơ sở dữ liệu MongoDB, trong khi người dùng Atlas có quyền truy cập vào chính ứng dụng ATLAS.database user with access to the desired database(s) on your Atlas database deployment. Database users are separate from Atlas users. Database users have access to MongoDB databases, while Atlas users have access to the Atlas application itself.database user with access to the desired database(s) on your Atlas database deployment. Database users are separate from Atlas users. Database users have access to MongoDB databases, while Atlas users have access to the Atlas application itself. Bạn có thể tạo người dùng cơ sở dữ liệu để truy cập triển khai cơ sở dữ liệu ATLAS của mình trong hộp thoại Connect. Bạn cũng có thể thêm người dùng cơ sở dữ liệu từ chế độ xem triển khai cơ sở dữ liệu.Connect dialog. You can also add the database user from the Database Deployment view.Connect dialog. You can also add the database user from the Database Deployment view.
Chọn Loại kết nối từ tập hợp các nút có sẵn. from the set of available buttons. from the set of available buttons. Ghi chúTùy chọn hiển thị nếu tính năng được bậtAtlas hiển thị các tùy chọn loại kết nối sau khi bạn bật IP riêng để nhìn, điểm cuối riêng hoặc cả hai. Nếu bạn chưa bật tính năng, không có nút hiển thị và loại kết nối nào mặc định theo tiêu chuẩn.Connection Type defaults to Standard.Connection Type defaults to Standard. Quan trọngKhi bạn nâng cấp phiên bản trình điều khiển của mình, một số lệnh, phương thức hoặc tùy chọn có thể được không dùng nữa. Kiểm tra tài liệu API Driver MongoDB của bạn để đảm bảo chuyển đổi suôn sẻ. if Atlas indicates in the Setup connection security step that you have at least one database user configured in your project. To manage existing database users, see Configure Database Users. if Atlas indicates in the Setup connection security step that you have at least one database user configured in your project. To manage existing database users, see Configure Database Users. Các ứng dụng chạy với trình điều khiển 4.0-series sẽ hoạt động với triển khai cơ sở dữ liệu MongoDB chạy MongoDB 4.4 miễn là:
Các thay đổi tương thích khác trong MongoDB 4.4 đến //Gọi hàm GetCollection để truy suất bảng dữ liệu IMongoCollection collection = database.GetCollection("Product"); //Muốn truy vấn toàn bộ dữ liệu trong bảng dùng lệnh dưới đây: List documents = collection.Find(new BsonDocument()).ToList();1 (bao gồm //Gọi hàm GetCollection để truy suất bảng dữ liệu IMongoCollection collection = database.GetCollection("Product"); //Muốn truy vấn toàn bộ dữ liệu trong bảng dùng lệnh dưới đây: List documents = collection.Find(new BsonDocument()).ToList();2), //Gọi hàm GetCollection để truy suất bảng dữ liệu IMongoCollection collection = database.GetCollection("Product"); //Muốn truy vấn toàn bộ dữ liệu trong bảng dùng lệnh dưới đây: List documents = collection.Find(new BsonDocument()).ToList();3, //Gọi hàm GetCollection để truy suất bảng dữ liệu IMongoCollection collection = database.GetCollection("Product"); //Muốn truy vấn toàn bộ dữ liệu trong bảng dùng lệnh dưới đây: List documents = collection.Find(new BsonDocument()).ToList();4 và //Gọi hàm GetCollection để truy suất bảng dữ liệu IMongoCollection collection = database.GetCollection("Product"); //Muốn truy vấn toàn bộ dữ liệu trong bảng dùng lệnh dưới đây: List documents = collection.Find(new BsonDocument()).ToList();5 không ảnh hưởng đến chúng. Chúng tôi khuyên bạn nên sử dụng trình điều khiển sê-ri MongoDB 4.4 với MongoDB 4.4 để sử dụng các tính năng cơ sở dữ liệu mới hơn và chuẩn bị để nâng cấp phiên bản trong tương lai.Choose Your Connection Method.Choose Your Connection Method. Khách hàng phải hỗ trợ TLS để kết nối với triển khai cơ sở dữ liệu ATLAS.Choose a connection method step, select Connect your application.Choose a connection method step, select Connect your application. Khách hàng phải hỗ trợ tiện ích mở rộng SNI TLS để kết nối với ATLAS //Các em có thể hiểu document là 1 đối tượng đang duyệt (là Json) trong tập các Json được lưu trong biến documents foreach (BsonDocument document in documents) { //Cột Ma (là thuộc tính Ma của đối tượng Product đang duyệt) có kiểu chuỗi string ma = document["Ma"].AsString; //Cột Ten (là thuộc tính Ten của đối tượng Product đang duyệt) có kiểu chuỗi string ten = document["Ten"].AsString; //Cột DonGia (là thuộc tính DonGia của đối tượng Product đang duyệt) có kiểu Double double gia = document["DonGia"].AsDouble; }1 Cụm miễn phí hoặc cụm chia sẻ //Các em có thể hiểu document là 1 đối tượng đang duyệt (là Json) trong tập các Json được lưu trong biến documents foreach (BsonDocument document in documents) { //Cột Ma (là thuộc tính Ma của đối tượng Product đang duyệt) có kiểu chuỗi string ma = document["Ma"].AsString; //Cột Ten (là thuộc tính Ten của đối tượng Product đang duyệt) có kiểu chuỗi string ten = document["Ten"].AsString; //Cột DonGia (là thuộc tính DonGia của đối tượng Product đang duyệt) có kiểu Double double gia = document["DonGia"].AsDouble; }2. Để xác minh rằng trình điều khiển MongoDB của bạn hỗ trợ tiện ích mở rộng SNITLS, hãy tham khảo phần tương thích trong tài liệu trình điều khiển của bạn. Nếu trình điều khiển tương thích với MongoDB 4.2 trở lên, nó sẽ hỗ trợ tiện ích mở rộng SNITLS.
Ghi chúNếu mật khẩu, tên cơ sở dữ liệu hoặc chuỗi kết nối của bạn chứa các ký tự URI dành riêng, bạn phải thoát khỏi các ký tự.Ví dụ: nếu mật khẩu của bạn là Để tìm hiểu thêm, xem khả năng tương thích của trình điều khiển.Driver Compatibility.Driver Compatibility. Trong ví dụ này, chuỗi kết nối URI, người dùng Chọn trình điều khiển của bạn từ các tùy chọn sau: Nếu bạn đang gặp phải các vấn đề kết nối với triển khai cơ sở dữ liệu của mình, hãy xem các vấn đề về kết nối khắc phục sự cố. MẹoXem thêm: |