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

Tìm tài liệu khớp chính xác các phần tử mảng trong MongoDB

Để tìm tài liệu có mảng khớp chính xác các phần tử chỉ định, hãy sử dụng find() kết hợp với $all và $size. Toán tử $all chọn tài liệu mà trường mảng chứa tất cả các phần tử chỉ định. $size đảm bảo độ dài mảng chính xác.

Tạo collection:

> db.demo543.insertOne({id:101, subject:["MySQL", "Java" ,"C","Python"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e1b2f9e5f92834d7f05c9") }
> db.demo543.insertOne({id:102, subject:["MySQL", "MongoDB" ,"SQL Server"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e1b2f9e5f92834d7f05ca") }

Hiển thị tất cả:

> db.demo543.find();

Kết quả:

{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05c9"), "id" : 101, "subject" : [ "MySQL", "Java", "C", "Python" ] }
{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05ca"), "id" : 102, "subject" : [ "MySQL", "MongoDB", "SQL Server" ] }

Truy vấn tìm tài liệu có mảng subject chứa chính xác 3 phần tử: "MySQL", "MongoDB", "SQL Server":

> db.demo543.find({
...     "subject": { $all: [ "MySQL", "MongoDB", "SQL Server"], $size: 3 }
... })

Kết quả:

{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05ca"), "id" : 102, "subject" : [ "MySQL", "MongoDB", "SQL Server" ] }