如何使用 MongoDB db.coll.find() 來根據內部類中的欄位進行搜尋?


使用點表示法 (.) 在內部類中進行 MongoDB 搜尋。首先建立一個包含文件的集合 −

> db.searchInInnerDemo.insertOne(
...    {
...       "StudentFirstName" : "Robert",
...       "StudentTechnicalDetails":
...       {
...          "StudentBackEndTechnology" : "MongoDB",
...          "StudentLanguage" : "Java"
...       }
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2dd89b64f4b851c3a13d2")
}
>
> db.searchInInnerDemo.insertOne(
...    {
...       "StudentFirstName" : "David",
...       "StudentTechnicalDetails":
...       {
...          "StudentBackEndTechnology" : "MySQL",
...          "StudentLanguage" : "PHP"
...       }
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2dda3b64f4b851c3a13d3")
}

以下是使用 find() 方法顯示集合中所有文件的查詢 −

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

這將產生以下輸出 −

{
   "_id" : ObjectId("5cd2dd89b64f4b851c3a13d2"),
   "StudentFirstName" : "Robert",
   "StudentTechnicalDetails" : {
      "StudentBackEndTechnology" : "MongoDB",
      "StudentLanguage" : "Java"
   }
}
{
   "_id" : ObjectId("5cd2dda3b64f4b851c3a13d3"),
   "StudentFirstName" : "David",
   "StudentTechnicalDetails" : {
      "StudentBackEndTechnology" : "MySQL",
      "StudentLanguage" : "PHP"
   }
}

情況 1 − 在內部類中查詢以僅匹配一個屬性的查詢 −

>db.searchInInnerDemo.find({"StudentTechnicalDetails.StudentBackEndTechnology":"MongoDB"}).pretty();

這將產生以下輸出 −

{
   "_id" : ObjectId("5cd2dd89b64f4b851c3a13d2"),
   "StudentFirstName" : "Robert",
   "StudentTechnicalDetails" : {
      "StudentBackEndTechnology" : "MongoDB",
      "StudentLanguage" : "Java"
   }
}

情況 2 − 使用全欄位名掃描查詢文件的查詢 −

>db.searchInInnerDemo.find({"StudentTechnicalDetails":{"StudentBackEndTechnology":"MongoDB","StudentLanguage":"Java"}}).pretty();

這將產生以下輸出 −

{
   "_id" : ObjectId("5cd2dd89b64f4b851c3a13d2"),
   "StudentFirstName" : "Robert",
   "StudentTechnicalDetails" : {
      "StudentBackEndTechnology" : "MongoDB",
      "StudentLanguage" : "Java"
   }
}

更新於:30-Jul-2019

113 瀏覽量

開啟你的 職業 生涯

透過完成課程獲得認證

開始
廣告