Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để sử dụng $ elemMatch trên mảng cấp một trong MongoDB?

Bạn có thể sử dụng toán tử $ in thay vì $ elemMatch trên mảng cấp một. Cú pháp như sau

db.yourCollectionName.find({yourFieldName:{$in:["yourValue"]}}).pretty();

Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu

>db.firstLevelArrayDemo.insertOne({"StudentName":"Chris","StudentTechnicalSkills":["Mongo
DB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca2360f66324ffac2a7dc71")
}
>db.firstLevelArrayDemo.insertOne({"StudentName":"Robert","StudentTechnicalSkills":["C","J
ava","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca2362766324ffac2a7dc72")
}

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find ()

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

Điều này sẽ tạo ra kết quả sau

{
   "_id" : ObjectId("5ca2360f66324ffac2a7dc71"),
   "StudentName" : "Chris",
   "StudentTechnicalSkills" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ]
}
{
   "_id" : ObjectId("5ca2362766324ffac2a7dc72"),
   "StudentName" : "Robert",
   "StudentTechnicalSkills" : [
      "C",
      "Java",
      "C++"
   ]
}

Sau đây là truy vấn để đối sánh trên mảng cấp một

> db.firstLevelArrayDemo.find({StudentTechnicalSkills:{$in:["MongoDB"]}}).pretty();

Điều này sẽ tạo ra kết quả sau

{
   "_id" : ObjectId("5ca2360f66324ffac2a7dc71"),
   "StudentName" : "Chris",
   "StudentTechnicalSkills" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ]
}