Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Có thể thực hiện slice chain (cắt mảng lồng nhau) trong MongoDB?

Có, dùng aggregation framework. Tạo collection mảng lồng nhau:

> db.sliceOfSliceDemo.insertOne(
  {
    "Name": "John",
    "Details": [["First 1:1", "First 1:2"],["second 2:1","Second 2:2"]]
  }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5ccf3fcfdceb9a92e6aa195a") }

Hiển thị document:

> db.sliceOfSliceDemo.find().pretty();

Kết quả:

Truy vấn lấy slice của slice (phần tử cuối cùng của mảng con cuối):

> db.sliceOfSliceDemo.aggregate([
  {$match:{"Name":"John"}},
  {$unwind:"$Details"},
  {$unwind:"$Details"},
  {$group:{"_id":"$Name","Details":{$last:"$Details"}}},
  {$project:{"Name":"$_id","Details":1}}
]);

Kết quả: