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

Truy vấn MongoDB cắt (slice) chỉ một phần tử của mảng

Sử dụng toán tử $slice trong projection để giới hạn số phần tử mảng trả về. Tạo collection:

> db.demo579.insertOne({
...   "_id" : 101,
...   "details" : { "FirstName" : "John" },
...   "Marks" : [ 56,78,90,34,45,74 ]
... });
{ "acknowledged" : true, "insertedId" : 101 }

Hiển thị đầy đủ:

> db.demo579.find().pretty();
{ "_id" : 101, "details" : { "FirstName" : "John" }, "Marks" : [ 56, 78, 90, 34, 45, 74 ] }

Truy vấn chỉ lấy 1 phần tử đầu của mảng Marks, ẩn details và _id:

> db.demo579.find({},{Marks : {$slice : 1} ,"details":0,"_id":0})

Kết quả:

{ "Marks" : [ 56 ] }

Các dạng $slice:

  • {$slice: n}: Lấy n phần tử đầu (n > 0)
  • {$slice: -n}: Lấy n phần tử cuối
  • {$slice: [skip, limit]}: Bỏ qua skip phần tử, lấy limit phần tử