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

Tìm bản ghi MongoDB nơi trường mảng không trống?

Bạn có thể sử dụng toán tử $ ne (Không bằng nhau) cho việc này. Để hiểu khái niệm, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với tài liệu như sau -

> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"Larry","StudentTechnicalSubject":["Java","C"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c76fe2f1e9c5dd6f1f78291")
}
> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"Mike","StudentTechnicalSubject":[]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c76fe3b1e9c5dd6f1f78292")
}
> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"Sam","StudentTechnicalSubject":["MongoDB"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c76fe491e9c5dd6f1f78293")
}
> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"Carol","StudentTechnicalSubject":[]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c76fe521e9c5dd6f1f78294")
}
> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"David","StudentTechnicalSubject":["MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c76fe661e9c5dd6f1f78295")
}

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 (). Truy vấn như sau -

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

Đầu ra

{
   "_id" : ObjectId("5c76fe2f1e9c5dd6f1f78291"),
   "StudentName" : "Larry",
   "StudentTechnicalSubject" : [
      "Java",
      "C"
   ]
}
{
   "_id" : ObjectId("5c76fe3b1e9c5dd6f1f78292"),
   "StudentName" : "Mike",
   "StudentTechnicalSubject" : [ ]
}
{
   "_id" : ObjectId("5c76fe491e9c5dd6f1f78293"),
   "StudentName" : "Sam",
   "StudentTechnicalSubject" : [
      "MongoDB"
   ]
}
{
   "_id" : ObjectId("5c76fe521e9c5dd6f1f78294"),
   "StudentName" : "Carol",
   "StudentTechnicalSubject" : [ ]
}
{
   "_id" : ObjectId("5c76fe661e9c5dd6f1f78295"),
   "StudentName" : "David",
   "StudentTechnicalSubject" : [
      "MySQL",
      "SQL Server"
   ]
}

Đây là truy vấn để tìm các bản ghi MongoDB trong đó trường mảng không trống -

> db.arrayFieldIsNotEmptyDemo.find({StudentTechnicalSubject:{$exists:true,$ne:[]}}).pretty();

Đầu ra

{
   "_id" : ObjectId("5c76fe2f1e9c5dd6f1f78291"),
   "StudentName" : "Larry",
   "StudentTechnicalSubject" : [
      "Java",
      "C"
   ]
}
{
   "_id" : ObjectId("5c76fe491e9c5dd6f1f78293"),
   "StudentName" : "Sam",
   "StudentTechnicalSubject" : [
      "MongoDB"
   ]
}
{
   "_id" : ObjectId("5c76fe661e9c5dd6f1f78295"),
   "StudentName" : "David",
   "StudentTechnicalSubject" : [
      "MySQL",
      "SQL Server"
   ]
}