Để lấy chỉ số (index/position) của một phần tử cụ thể trong mảng, bạn sử dụng toán tử aggregation $indexOfArray (có từ MongoDB 3.4+).
Tạo dữ liệu mẫu
Hiển thị document:
{ "_id" : ObjectId("5cbd5251de8cc557214c0df8"), "InstructorName" : "Chris", "InstructorSubject" : [ "MongoDB", "MySQL", "Java", "C++" ] }Tìm index của "MongoDB" (element đầu tiên)
Kết quả:
Tìm index của "C++" (element cuối)
Kết quả:
Giải thích $indexOfArray
- Cú pháp:
{ $indexOfArray: [, ] } - Trả về chỉ số đầu tiên (0-based) của giá trị trong mảng
- Trả về
-1nếu không tìm thấy - Chỉ số bắt đầu từ 0 (element đầu = 0, element cuối = n-1)
- Có overload:
{ $indexOfArray: [, , , ] }
Ứng dụng: Xác định vị trí element để dùng với $slice, $set tại vị trí cụ thể, hoặc logic nghiệp vụ dựa trên thứ tự.