Làm cách nào để thêm các phần tử vào một mảng trong mongodb?
Trong MongoDB, toán tử $push được sử dụng để nối một giá trị đã chỉ định vào một mảng. Nếu trường được đề cập không có trong tài liệu để cập nhật, toán tử $push sẽ thêm trường đó dưới dạng trường mới và bao gồm giá trị được đề cập làm thành phần của nó. Nếu trường cập nhật không phải là trường kiểu mảng thì thao tác không thành công Show
Tại thời điểm cập nhật nếu bản thân giá trị là một mảng, toán tử $push sẽ nối toàn bộ mảng dưới dạng một phần tử Nếu bạn muốn thêm từng phần tử của giá trị một cách riêng biệt, toán tử $push có thể được sử dụng với công cụ sửa đổi $each cú pháp db.collection.update( Thông số TênMô tảtrường tên của cột hoặc trường vào tài liệu. giá trị. Đây là những giá trị được chỉ định cho các trường hoặc cột. truy vấn Truy vấn có thể là một biểu thức hoặc điều kiện hoặc tiêu chí Bộ sưu tập mẫu "sinh viên"
Ví dụ về toán tử MongoDB $pushNếu chúng ta muốn nối 95 vào trường mảng đạt được đối với các đối tượng điều kiện là "gkn", có thể sử dụng lệnh mongodb sau -
Ở đây trong ví dụ trên, công cụ sửa đổi $each đã được sử dụng để nối nhiều phần tử 77,49,83 vào mảng đạt được khớp với điều kiện đối tượng bằng "gkn" Trong cơ sở dữ liệu MongoDB, dữ liệu được lưu trữ trong bộ sưu tập và bộ sưu tập có tài liệu. Tài liệu có các trường và giá trị, giống như trong JSON. Các loại trường bao gồm các loại vô hướng ( 3, 4, 5, v.v. ) và các loại hỗn hợp ( 6 và 7). Trong bài viết này, chúng ta sẽ xem xét một ví dụ về việc sử dụng kiểu trường mảngVí dụ là một ứng dụng nơi người dùng tạo các bài đăng trên blog và viết bình luận cho các bài đăng. Mối quan hệ giữa các bài đăng và nhận xét là Một-nhiều; . e. , một bài viết có thể có nhiều bình luận. Chúng tôi sẽ xem xét một bộ sưu tập các bài đăng trên blog với ý kiến của họ. Đó là một tài liệu bài đăng cũng sẽ lưu trữ các bình luận liên quan. Trong mô hình tài liệu của MongoDB, 1. N dữ liệu mối quan hệ có thể được lưu trữ trong một bộ sưu tập; . Dữ liệu liên quan được lưu trữ cùng nhau và có thể được truy cập (và cập nhật) cùng nhau. Các nhận xét được lưu trữ dưới dạng một mảng; Một tài liệu mẫu của các bài viết trên blog với ý kiến ________số 8Trong một ứng dụng, một bài đăng trên blog được tạo, các bình luận được thêm vào, truy vấn, sửa đổi hoặc xóa bởi người dùng. Trong ví dụ này, chúng tôi sẽ viết mã để tạo tài liệu bài đăng trên blog và thực hiện một số thao tác CRUD với nhận xét cho bài đăng 2. Tạo và truy vấn tài liệuHãy tạo một tài liệu bài đăng trên blog. Chúng tôi sẽ sử dụng cơ sở dữ liệu có tên là 8 và bộ sưu tập có tên là 9. Mã này được viết bằng 10shell (giao diện JavaScript tương tác với MongoDB). Mongo shell được bắt đầu từ dòng lệnh và được kết nối với máy chủ MongoDB. từ vỏ
Trả về kết quả 11 cho biết rằng một tài liệu mới được tạo. Đây là một xác nhận phổ biến khi bạn thực hiện thao tác ghi. Khi tài liệu được chèn vào bộ sưu tập lần đầu tiên, bộ sưu tập sẽ được tạo (nếu nó chưa tồn tại). Phương thức 12 chèn một tài liệu vào bộ sưu tậpBây giờ, hãy truy vấn bộ sưu tập 1Phương thức 13 truy xuất một tài liệu phù hợp từ bộ sưu tập. Lưu ý các trường vô hướng 14 (kiểu chuỗi) và 15 (kiểu ngày) và trường mảng 16. Trong tài liệu mới được chèn chưa có bình luận nào3. Thêm một phần tử mảngHãy thêm nhận xét cho bài đăng này, bởi người dùng "DB Learner" 0trả lại. 17Phương thức 18 cập nhật các trường của tài liệu dựa trên điều kiện đã chỉ định. 19 là một toán tử cập nhật mảng để thêm một phần tử vào một mảng. Nếu mảng không tồn tại, nó sẽ tạo một trường mảng và sau đó thêm phần tửHãy truy vấn bộ sưu tập và xác nhận nhận xét mới một cách trực quan, sử dụng phương pháp 13 5Lưu ý trường mảng 01 có các đối tượng nhận xét là phần tử. Hãy thêm một nhận xét nữa bằng cách sử dụng cùng toán tử cập nhật 19. Nhận xét mới này (của 03 "Database Rebel") được thêm vào mảng 01 04. Cập nhật một phần tử mảngHãy cập nhật nhận xét được đăng bởi "Database Rebel" với trường 05 đã sửa đổi. ______206. 3Toán tử cập nhật 07 được sử dụng để thay đổi giá trị của trường. Toán tử $ vị trí xác định một phần tử trong một mảng để cập nhật mà không chỉ định rõ ràng vị trí của phần tử trong mảng. Phần tử phù hợp đầu tiên được cập nhật. Đối tượng nhận xét được cập nhật 55. Xóa một phần tử mảngNgười dùng đã đổi ý và muốn xóa nhận xét, sau đó thêm nhận xét mới 6Toán tử cập nhật 08 loại bỏ các phần tử khỏi một mảng phù hợp với điều kiện đã chỉ định - trong trường hợp này là 09Một nhận xét mới được thêm vào mảng sau thao tác xóa ở trên, với nội dung sau. 506. Thêm một Trường mới cho tất cả các Đối tượng trong MảngHãy thêm một trường mới 51 cho tất cả các nhận xét trong mảng 1Toán tử tất cả vị trí 52 chỉ định rằng toán tử cập nhật 07 sẽ sửa đổi tất cả các phần tử trong trường mảng đã chỉ định. Sau khi cập nhật tất cả các đối tượng bình luận đều có trường 51 chẳng hạn 07. Cập nhật một phần tử mảng cụ thể dựa trên một điều kiệnTrước tiên, hãy thêm một nhận xét mới bằng cách sử dụng toán tử cập nhật 19 1Lưu ý trường 51 bị thiếu trong tài liệu đầu vào. Chúng tôi sẽ cập nhật nhận xét cụ thể này trong mảng 01 với điều kiện là trường 51 bị thiếu 2Trường 51 được cập nhật bằng toán tử cập nhật 00 (điều này làm tăng giá trị của trường hoặc nếu không tồn tại thì thêm trường rồi tăng). Toán tử vị trí được lọc 01 xác định các phần tử mảng phù hợp với điều kiện 02 cho thao tác cập nhật8. Sự kết luậnBài viết này cho thấy thực hiện các thao tác CRUD cơ bản trên một mảng đối tượng
MongoDB cũng cho phép lập chỉ mục các phần tử mảng - trong trường hợp này là các trường của đối tượng nhận xét của mảng 01. Ví dụ: nếu bạn đang truy vấn nhận xét của 04 và cần truy cập nhanh, bạn có thể tạo chỉ mục cho trường đó. Các chỉ mục trên các trường mảng được gọi là Chỉ mục đa khóa. Chỉ mục trường mảng có thể là một phần của Chỉ mục hợp chấtChúng ta có thể thực hiện nhiều thao tác khác trên mảng - phép chiếu, truy vấn và cập nhật - sử dụng các toán tử khác nhau cũng như Đường ống tổng hợp. Ngoài ra, hãy thực hiện các thao tác này trên các mảng lồng nhau (mảng bên trong mảng). Chúng ta sẽ thấy một số tính năng này trong một bài viết sau 8. 1. Liên kết hữu ích
MongoDBArrayNosqlDatabase Báo cáo Thưởng thức bài viết này? 1 Đăng lại Prasad Saya Kỹ sư phần mềm có kinh nghiệm với các kỹ năng cơ sở dữ liệu và Java Tôi là một **Java** và nhà phát triển cơ sở dữ liệu có kinh nghiệm về thiết kế, phát triển, tư vấn, hỗ trợ và bảo trì. Tôi có *chứng chỉ* về Java, MongoDB và OOAD. Kinh nghiệm cơ sở dữ liệu của tôi bao gồm các dự án thiết kế và lập trình |