Làm cách nào để hợp nhất hai đối tượng trong MongoDB?
Tôi đang vật lộn để hợp nhất hai đối tượng theo cách tôi cần bằng Node. js express và mongoDB. Dưới đây bạn sẽ thấy cả hai đối tượng ban đầu Show
Tôi hiện đang cố gắng
Nhưng điều đó mang lại cho tôi
Nhưng những gì tôi cần là
Tôi cũng đã thử dùng 5 và sử dụng Object. gán() nhưng cả hai rõ ràng sau đó chia lưới trong các trường tôi không cần từ obj2 (ID và nhà). Thực tế, tôi chỉ cần lấy các nhóm yêu thích từ đối tượng thứ hai, nhưng tôi cần đó là một khóa mới trong đối tượng đầu tiên và cũng để duy trì phản hồi mảng với danh sách các chuỗi Giải trình. hợp nhất các đối tượng, 6 và 7 trở thành khóa và 8 trở thành giá trị. trong đối tượng 9. sau đó tài liệu 9 sẽ hợp nhất thành 1. kiểm tra đầu ra dự kiến
Tài liệu đầu ra - stackoverflow. comghi bàn. 1 câu trả lời được chấp nhận Một giải pháp tĩnh sẽ là giải pháp này
Nếu bạn cần một cái năng động hơn, thì hãy sử dụng ________số 8Thêm câu hỏi với thẻ tương tựTrong MongoDB, toán tử đường dẫn tổng hợp { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 kết hợp nhiều tài liệu thành một tài liệu duy nhất cú phápToán tử { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 hỗ trợ hai cú pháp Cú pháp 1 1Cú pháp 2 2Cú pháp đầu tiên chấp nhận nhiều đối số và cú pháp thứ hai chấp nhận một đối số Ví dụ về Cú pháp 1 (Nhiều đối số)Cú pháp đầu tiên liên quan đến việc cung cấp cho { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 nhiều hơn một đối số/tài liệu. { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 sau đó kết hợp các tài liệu đó thành một Giả sử chúng ta có một bộ sưu tập tên là { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }7 với tài liệu sau { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } } Chúng ta có thể sử dụng { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 để hợp nhất các trường { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }9 và 90 9Kết quả 1Trong trường hợp này, chúng tôi đã hợp nhất cả hai trường thành một trường duy nhất có tên là 91. Nếu chúng tôi có nhiều trường/tài liệu hơn, chúng tôi cũng có thể hợp nhất chúng nếu muốnTên trường trùng lặpNếu các tài liệu được hợp nhất chứa các tên trường trùng lặp, { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 sẽ ghi đè lên trường khi nó hợp nhất các tài liệu. Do đó, trường trong tài liệu kết quả chứa giá trị từ tài liệu cuối cùng được hợp nhất cho trường đó Giả sử chúng ta có tài liệu sau 4Chúng ta có thể thấy rằng cả hai tài liệu đều chứa một trường có tên là 93Đây là những gì xảy ra khi chúng tôi hợp nhất các tài liệu đó 6Kết quả 7Trường 93 trong tài liệu kết quả chứa 95, là giá trị từ tài liệu cuối cùng được hợp nhấtGiá trị NullNếu hợp nhất một tài liệu với 96, tài liệu kết quả sẽ được trả về mà không có bất kỳ thay đổi nàoNhưng nếu tất cả các tài liệu được hợp nhất là 96, thì một tài liệu trống sẽ được trả vềGiả sử chúng ta có các tài liệu sau 2Đây là những gì xảy ra khi chúng tôi hợp nhất các trường { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }9 và 90 trong hai tài liệu đó 5Kết quả 20Ví dụ về Cú pháp 2 (Đối số đơn)Dưới đây là hai ví dụ sử dụng cú pháp đối số duy nhất Bộ tích lũy sân khấu const merged = {...obj1, ...obj2.favoriteteams}; 10Trong ví dụ đầu tiên, { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 được sử dụng làm bộ tích lũy giai đoạn 10Giả sử chúng ta có một bộ sưu tập tên là 13 với các tài liệu sau 21Chúng tôi có thể nhóm các tài liệu này theo trường 14 của chúng, sau đó sử dụng { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 để hợp nhất trường 16 cho mỗi nhóm 22Kết quả 23MảngVí dụ này áp dụng { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 cho một tài liệu có chứa một trường có một mảng tài liệu Giả sử chúng ta có một bộ sưu tập tên là 18 với các tài liệu sau 24Chúng ta có thể áp dụng { "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 cho trường 40 25Kết quả 26Các trường bị thiếu{ "_id" : 1, "name" : { "f_name" : "Homer", "l_name" : "Simpson" }, "contact" : { "email" : "[email protected]", "ph" : null } }3 bỏ qua mọi trường bị thiếu. Nghĩa là, nếu bạn cung cấp một trường không tồn tại, nó sẽ bỏ qua nó. Nếu không có trường nào tồn tại, thì nó sẽ trả về một tài liệu trống Làm cách nào để kết hợp hai bộ sưu tập trong MongoDB?Chúng ta có thể nối các tài liệu trên các bộ sưu tập trong MongoDB bằng cách sử dụng chức năng $lookup (Tập hợp) . $lookup(Aggregation) tạo liên kết ngoài cùng bên trái với một tập hợp khác và giúp lọc dữ liệu khỏi dữ liệu đã hợp nhất.
Làm cách nào để hợp nhất hai mảng trong tổng hợp MongoDB?MongoDB cung cấp các loại toán tử biểu thức mảng khác nhau được sử dụng trong các giai đoạn đường ống tổng hợp và toán tử $concatArrays là một trong số đó. Toán tử này được sử dụng để nối hai hoặc nhiều mảng và trả về một mảng đã nối. Ở đây, mảng phải là một biểu thức hợp lệ cho đến khi nó phân giải thành một mảng.
$$ có nghĩa là gì trong MongoDB?Trong biểu thức, ký hiệu đô la $ đánh giá thành đường dẫn trường; . e. cung cấp quyền truy cập vào trường . Ví dụ, biểu thức $eq $eq. [ "$price", "$1" ] thực hiện kiểm tra sự bằng nhau giữa giá trị trong trường có tên price và giá trị trong trường có tên 1 trong tài liệu.
$root trong MongoDB là gì?Tài nguyên gốc là điểm bắt đầu cho API Trình quản lý đám mây . Từ đây, bạn có thể duyệt qua các liên kết để truy cập tất cả các tài nguyên API khác. |