Làm cách nào để thêm một trường trong MongoDB?
MongoDB là cơ sở dữ liệu NoSQL hướng tài liệu được cung cấp công khai. Chúng tôi có thể cập nhật các tài liệu trong bộ sưu tập bằng nhiều phương pháp khác nhau như cập nhật, thay thế và lưu. Để thay đổi một trường cụ thể của tài liệu, chúng tôi sẽ sử dụng các toán tử khác nhau như $set, $inc, v.v. Show
Trong hướng dẫn này, chúng ta sẽ học cách sửa đổi nhiều trường của tài liệu bằng truy vấn cập nhật và thay thế. Đối với mục đích trình diễn, trước tiên chúng ta sẽ thảo luận về truy vấn trình bao mongo và sau đó là triển khai tương ứng của truy vấn đó trong Java Bây giờ chúng ta hãy xem xét các phương pháp khác nhau để đạt được mục đích 2. Truy vấn Shell để cập nhật các trường khác nhauTrước khi bắt đầu, trước tiên chúng ta hãy tạo cơ sở dữ liệu mới, baeldung và bộ sưu tập mẫu, employee. Chúng tôi sẽ sử dụng bộ sưu tập này trong tất cả các ví dụ
Bây giờ, hãy thêm một số tài liệu vào bộ sưu tập này bằng cách sử dụng truy vấn insertMany
Kết quả là chúng ta sẽ nhận được một JSON với ObjectId cho cả hai tài liệu như hình bên dưới
Cho đến nay, chúng tôi đã thiết lập môi trường cần thiết. Bây giờ hãy cập nhật các tài liệu mà chúng tôi vừa chèn 2. 1. Cập nhật nhiều trường của một tài liệuChúng ta có thể sử dụng toán tử $set và $inc để cập nhật bất kỳ trường nào trong MongoDB. Toán tử $set sẽ đặt giá trị mới được chỉ định trong khi toán tử $inc sẽ tăng giá trị theo một giá trị đã chỉ định Trước tiên, hãy xem xét truy vấn MongoDB để cập nhật hai trường của bộ sưu tập nhân viên bằng cách sử dụng toán tử $set Có thể bạn quan tâm
Trong truy vấn trên, trường employee_id và employee_name được sử dụng để lọc tài liệu và toán tử $set được sử dụng để cập nhật trường job và department_id Chúng ta cũng có thể sử dụng các toán tử $set và $inc cùng nhau trong một truy vấn cập nhật duy nhất
Thao tác này sẽ cập nhật trường công việc thành Quản lý bán hàng và tăng department_id lên 1 2. 2. Cập nhật nhiều trường của nhiều tài liệuNgoài ra chúng ta cũng có thể cập nhật nhiều trường của nhiều tài liệu trong MongoDB. Chúng ta chỉ cần thêm tùy chọn multi. true để sửa đổi tất cả các tài liệu phù hợp với tiêu chí truy vấn bộ lọc
Ngoài ra, chúng tôi sẽ nhận được kết quả tương tự bằng cách sử dụng truy vấn updateMany
Trong truy vấn trên, chúng tôi đã sử dụng phương thức updateMany để cập nhật nhiều hơn 1 tài liệu của bộ sưu tập 2. 3. Sự cố thường gặp khi cập nhật nhiều trườngCho đến giờ, chúng ta đã học cách cập nhật nhiều trường bằng cách sử dụng truy vấn cập nhật bằng cách cung cấp hai toán tử khác nhau hoặc sử dụng một toán tử duy nhất trên nhiều trường Bây giờ, nếu chúng ta sử dụng một toán tử nhiều lần với các trường khác nhau trong một truy vấn, MongoDB sẽ chỉ cập nhật câu lệnh cuối cùng của truy vấn cập nhật và bỏ qua phần còn lại
Truy vấn trên sẽ trả về kết quả tương tự như truy vấn này ________số 8_______Trong trường hợp này, công việc duy nhất sẽ được cập nhật thành "Quản lý bán hàng". Giá trị department_id sẽ không được cập nhật thành 3 3. Cập nhật các trường bằng trình điều khiển JavaCho đến nay, chúng ta đã thảo luận về các truy vấn MongoDB thô. Bây giờ hãy thực hiện các thao tác tương tự bằng Java. Trình điều khiển Java MongoDB hỗ trợ hai lớp để biểu diễn một tài liệu MongoDB, com. mongodb. BasicDBObject và tổ chức. con trai. Tài liệu. Chúng ta sẽ xem xét cả hai phương pháp để cập nhật các trường trong tài liệu Trước khi tiếp tục, trước tiên hãy kết nối với bộ sưu tập nhân viên bên trong baeldung DB
Ở đây, chúng tôi giả định rằng MongoDB đang chạy cục bộ tại cổng mặc định là 27017 3. 1. Sử dụng DBObjectĐể tạo tài liệu trong MongoDB, chúng ta sẽ sử dụng lệnh com. mongodb. Giao diện DBObject và lớp triển khai của nó com. mongodb. BasicDBObject Việc triển khai DBObject dựa trên các cặp khóa-giá trị. BasicDBObject được kế thừa từ lớp LinkedHashMap trong gói util Bây giờ chúng ta hãy sử dụng com. mongodb. BasicDBObject để thực hiện thao tác cập nhật trên nhiều trường 0Ở đây, trước tiên, chúng tôi đã tạo một truy vấn bộ lọc trên cơ sở employee_id. Thao tác này sẽ trả về một bộ tài liệu. Hơn nữa, chúng tôi đã cập nhật giá trị của bộ phận_id và công việc theo truy vấn đã đặt 3. 2. Sử dụng tài liệu bsonChúng tôi có thể thực hiện tất cả các thao tác MongoDB bằng tài liệu bson. Đối với điều đó, trước tiên, chúng ta cần đối tượng bộ sưu tập và sau đó thực hiện thao tác cập nhật bằng cách sử dụng phương thức updateMany với các chức năng bộ lọc và thiết lập 1Ở đây, chúng tôi đang chuyển bộ lọc truy vấn tới phương thức updateMany. Bộ lọc eq đối sánh employee_id với văn bản đối sánh chính xác '794875'. Sau đó, chúng tôi cập nhật bộ phận_id và công việc bằng cách sử dụng toán tử thiết lập 4. Sử dụng Truy vấn Thay thếCách tiếp cận ngây thơ để cập nhật nhiều trường của tài liệu là thay thế nó bằng một tài liệu mới có các giá trị được cập nhật Ví dụ: nếu chúng tôi muốn thay thế một tài liệu bằng employee_id 794875, chúng tôi có thể thực hiện truy vấn sau 2Lệnh trên sẽ in một JSON xác nhận ở đầu ra ________số 8_______Ở đây, trường employee_id được sử dụng để lọc tài liệu. Đối số thứ hai của truy vấn cập nhật biểu thị tài liệu mà tài liệu hiện có sẽ được thay thế Trong truy vấn trên, chúng tôi đang thực hiện replaceOne, do đó, nó sẽ chỉ thay thế một tài liệu duy nhất bằng bộ lọc đó. Ngoài ra, nếu chúng tôi muốn thay thế tất cả các tài liệu bằng truy vấn bộ lọc đó, thì chúng tôi sẽ cần sử dụng phương thức updateMany 5. Phần kết luậnTrong bài viết này, chúng tôi đã khám phá nhiều cách khác nhau để cập nhật nhiều trường của tài liệu trong MongoDB. Chúng tôi đã thảo luận rộng rãi về hai cách triển khai, sử dụng MongoDB shell và sử dụng trình điều khiển Java Có nhiều tùy chọn khác nhau để cập nhật nhiều trường của tài liệu bao gồm các toán tử $inc và $set Làm cách nào để thêm dữ liệu vào MongoDB?Để chèn dữ liệu vào bộ sưu tập MongoDB, bạn cần sử dụng phương thức insert() hoặc save() của MongoDB .
Làm cách nào để sử dụng addField trong MongoDB?$addFields xuất tài liệu chứa tất cả các trường hiện có từ tài liệu đầu vào và các trường mới được thêm vào. Giai đoạn $addFields tương đương với giai đoạn $project chỉ định rõ ràng tất cả các trường hiện có trong tài liệu đầu vào và thêm các trường mới
Làm cách nào để chèn danh sách trong MongoDB?Để chèn tài liệu vào bộ sưu tập MongoDB, chúng ta có thể sử dụng các phương thức khác nhau như insert(), insertOne() và insertMany().
Làm cách nào để tạo bản ghi trong MongoDB?Bạn có thể tạo tài liệu trong bộ sưu tập bằng cách sử dụng Toán tử CRUD MongoDB trong Sân chơi MongoDB. Sử dụng phương thức insertOne() để chèn một tài liệu. . Tạo kết nối đến triển khai MongoDB Kích hoạt kết nối với triển khai MongoDB Mở một Sân chơi MongoDB |