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

Truy vấn MongoDB theo trường con?

Bạn có thể sử dụng ký hiệu dấu chấm (.) Để truy vấn theo trường con. Hãy để chúng tôi tạo một bộ sưu tập với một tài liệu. Truy vấn để tạo một bộ sưu tập với một tài liệu như sau -

> db.queryBySubFieldDemo.insertOne(
   ... {
      ... "StudentPersonalDetails" : {"StudentName" : "John","StudentHobby" :"Photography"},
      ... "StudentScores" : {"MathScore" : 56}
   ... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c92c2995259fcd195499808")
}
> db.queryBySubFieldDemo.insertOne(
   ... {
      ... "StudentPersonalDetails" : {"StudentName" : "Chris","StudentHobby" :"Reading"},
      ... "StudentScores" : {"MathScore" : 97}
   ... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c92c2df5259fcd195499809")
}

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.queryBySubFieldDemo.find().pretty();

Sau đây là kết quả -

{
   "_id" : ObjectId("5c92c2995259fcd195499808"),
   "StudentPersonalDetails" : {
      "StudentName" : "John",
      "StudentHobby" : "Photography"
   },
   "StudentScores" : {
      "MathScore" : 56
   }
}
{
   "_id" : ObjectId("5c92c2df5259fcd195499809"),
   "StudentPersonalDetails" : {
      "StudentName" : "Chris",
      "StudentHobby" : "Reading"
   },
   "StudentScores" : {
      "MathScore" : 97
   }
}

Đây là truy vấn theo trường con -

> db.queryBySubFieldDemo.find({"StudentPersonalDetails.StudentName":"Chris"}).pretty();

Sau đây là kết quả -

{
   "_id" : ObjectId("5c92c2df5259fcd195499809"),
   "StudentPersonalDetails" : {
      "StudentName" : "Chris",
      "StudentHobby" : "Reading"
   },
   "StudentScores" : {
      "MathScore" : 97
   }
}