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

Tìm tài liệu trong MongoDB khi ít nhất một phần tử mảng không nằm trong mảng khác

Để thực hiện điều này, sử dụng regex trong phương thức find() của MongoDB. Trước tiên, tạo collection với dữ liệu mẫu:

> db.demo228.insertOne({"Subjects":["MongoDB","Java"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3fa51f03d395bdc213473b") }
> db.demo228.insertOne({"Subjects":["MongoDB","Java","MySQL"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3fa52c03d395bdc213473c") }

Hiển thị tất cả tài liệu:

> db.demo228.find();

Kết quả:

{ "_id" : ObjectId("5e3fa51f03d395bdc213473b"), "Subjects" : [ "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }

Truy vấn tìm tài liệu có ít nhất một phần tử không phải là "MongoDB" hoặc "Java":

> db.demo228.find({ "Subjects": /^(?!MongoDB|Java)/ });

Kết quả chỉ trả về tài liệu chứa "MySQL":

{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }