Hướng dẫn mongodb unwind object - đối tượng thư giãn mongodb
Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual 4Deconstructs Một trường mảng từ các tài liệu đầu vào để xuất một tài liệu cho từng phần tử. Mỗi tài liệu đầu ra là tài liệu đầu vào với giá trị của trường mảng được thay thế bằng phần tử.Deconstructs an array field from the input documents to output a document for each element. Each output document is the input document with the value of the array field replaced by the element. Bạn có thể vượt qua toán hạng đường dẫn trường hoặc toán hạng tài liệu để thư giãn trường mảng. Bạn có thể chuyển đường dẫn trường mảng đến 4. Khi sử dụng cú pháp này, 4 không xuất tài liệu nếu giá trị trường là null, thiếu hoặc một mảng trống. 4. When using this syntax, 4 does not output a document if the field value is null, missing, or an empty array.
Khi bạn chỉ định đường dẫn trường, tiền tố tên trường có dấu hiệu đô la 7 và gửi kèm theo trích dẫn.Bạn có thể chuyển một tài liệu cho 4 để chỉ định các tùy chọn hành vi khác nhau. 4 to specify various behavior options.
Khi toán hạng không giải quyết được một mảng, nhưng không bị thiếu, 8 hoặc một mảng trống, 4 coi toán hạng là một mảng phần tử duy nhất. 4, by
default, ignores the input document and will not output documents for that input document.Khi toán hạng là 8, bị thiếu hoặc một mảng trống 4 tuân theo hành vi được đặt cho tùy chọn PreservenAllandEmptyArrays.preserveNullAndEmptyArrays option.Nếu bạn chỉ định một đường dẫn cho một trường không tồn tại trong tài liệu đầu vào hoặc trường là một mảng trống, 4, theo mặc định, bỏ qua tài liệu đầu vào và sẽ không xuất tài liệu cho tài liệu đầu vào đó. 3, create a sample collection named 4 with the following document:
Để xuất các tài liệu nơi trường mảng bị thiếu, null hoặc một mảng trống, hãy sử dụng tùy chọn PreservenAllandEmptyArrays. db.inventory.insertOne({ "_id" : 1, "item" : "ABC1", sizes: [ "S", "M", "L"] }) 6
array:
Trong 3, hãy tạo một bộ sưu tập mẫu có tên 4 với tài liệu sau:
Tập hợp sau đây sử dụng giai đoạn 4 để xuất tài liệu cho từng phần tử trong mảng 6:Hoạt động trả về các kết quả sau:
Mỗi tài liệu giống hệt với tài liệu đầu vào ngoại trừ giá trị của trường 6 field as a single element array if:
giá trị không phải là null, và db.inventory.insertOne({ "_id" : 1, "item" : "ABC1", sizes: [ "S", "M", "L"] })
Giá trị không phải là một mảng trống. db.inventory.insertOne({ "_id" : 1, "item" : "ABC1", sizes: [ "S", "M", "L"] })
Trong tài liệu db.clothing.insertMany([ { "_id" : 1, "item" : "Shirt", "sizes": [ "S", "M", "L"] }, { "_id" : 2, "item" : "Shorts", "sizes" : [ ] }, { "_id" : 3, "item" : "Hat", "sizes": "M" }, { "_id" : 4, "item" : "Gloves" }, { "_id" : 5, "item" : "Scarf", "sizes" : null }])9, { "_id" : 1, "item" : "ABC1", "sizes" : "S" }{ "_id" : 1, "item" : "ABC1", "sizes" : "M" }{ "_id" : 1, "item" : "ABC1", "sizes" : "L" }6 giải quyết cho một mảng phần tử duy nhất.Tài liệu 1 và 2 không trả lại bất cứ điều gì vì trường 6 không thể được giảm xuống thành một mảng phần tử. 4 operations are
equivalent.
Ghi chú db.clothing.aggregate( [ { $unwind: { path: "$sizes" } } ] ) db.clothing.aggregate( [ { $unwind: { path: "$sizes" } } ] )
Cú pháp 4 là tùy chọn. Các hoạt động 4 sau đây là tương đương. 4 operation uses the preserveNullAndEmptyArrays option to include documents whose 6 field is null, missing, or an empty array. 0Các ví dụ 6 và 7 Sử dụng bộ sưu tập sau: 1Hoạt động 4 sau đây sử dụng tùy chọn PreservenAllandEmptyArrays để bao gồm các tài liệu có trường 6 là null, thiếu hoặc một mảng trống. 4 operation uses the includeArrayIndex option to include the
array index in the output. 2Đầu ra bao gồm những tài liệu trong đó trường 6 là null, thiếu hoặc một mảng trống: 3Hoạt động 4 sau đây sử dụng tùy chọn bao gồm inflay Index để bao gồm chỉ mục mảng vào đầu ra. 3, create a
sample collection named 8 with the following documents: 4Hoạt động thư giãn mảng 6 và bao gồm chỉ mục mảng trong trường 3 mới. Nếu trường 6 không giải quyết được cho một mảng đông dân nhưng không bị thiếu, null hoặc một mảng trống, trường 3 là 8. 5Trong 3, hãy tạo một bộ sưu tập mẫu có tên 8 với các tài liệu sau:Đường ống sau khi thư giãn mảng 6 và nhóm các tài liệu kết quả bởi các giá trị kích thước không chắc chắn: 4 stage outputs a new document for each element in the 6 array. The stage uses
the preserveNullAndEmptyArrays option to include in the output those documents where 6 field is missing, null or an empty array. This stage passes the following documents to the next stage: 1Giai đoạn đầu tiên:Giai đoạn 4 xuất ra một tài liệu mới cho mỗi phần tử trong mảng 6. Giai đoạn sử dụng tùy chọn PreservenAllandEmptyArrays để đưa vào đầu ra các tài liệu đó trong đó trường 6 bị thiếu, null hoặc một mảng trống. Giai đoạn này chuyển các tài liệu sau đây cho giai đoạn tiếp theo: 7Giai đoạn thứ hai:Giai đoạn 3 nhóm các tài liệu bằng 6 và tính toán giá trung bình của mỗi kích thước. Giai đoạn này chuyển các tài liệu sau đây cho giai đoạn tiếp theo: 8MẹoTrong 3, hãy tạo một bộ sưu tập mẫu có tên 8 với các tài liệu sau: 3, create a sample collection named 8 with the following documents: 9Các nhóm hoạt động sau đây các mục được bán bởi thẻ của họ và tính toán tổng số tiền bán hàng cho mỗi thẻ. 0Giai đoạn đầu tiênGiai đoạn 4 đầu tiên xuất ra một tài liệu mới cho mỗi phần tử trong mảng 0: 4 stage outputs a new document for each element in the 0 array: 1Giai đoạn thứ haiGiai đoạn 4 thứ hai xuất ra một tài liệu mới cho mỗi phần tử trong mảng 2: 4 stage outputs a new document for each element in the 2 arrays: 2Giai đoạn thứ baGiai đoạn 3 nhóm các tài liệu theo thẻ và tính toán tổng số lượng bán hàng với mỗi thẻ: 3Mẹo
|