Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

การสืบค้น Subdocument แสดงผลในบรรทัดเดียว MongoDB

ใช้ $unwind แยก Subdocument

เพื่อแสดง subdocument แต่ละตัวในบรรทัดแยกกัน ให้ใช้ $unwind ใน aggregate แล้วประมวลผลด้วยฟังก์ชัน JavaScript

> db.demo183.insertOne({ "_id": "110", "DueDate": ISODate("2020-02-04"), "ProductDetails": [ { "ProductName": "Product-1", "isAvailable": true }, { "ProductName": "Product-2", "isAvailable": false } ] });

คำสั่ง aggregate พร้อมฟังก์ชันพิมพ์ผล:

var productdata = function(d) { print(d.DueDate + ", " + d.ProductDetails.ProductName + ", " + d.ProductDetails.isAvailable); }
var iterator = db.demo183.aggregate([ {$match: {_id: "110"}}, {$unwind: '$ProductDetails'} ]);
iterator.forEach(productdata);

ผลลัพธ์แต่ละรายการในบรรทัดแยก:

Tue Feb 04 2020 ..., Product-1, true
Tue Feb 04 2020 ..., Product-2, false