如何在 MongoDB 中獲取陣列內的匹配文件?


要獲取匹配的文件,請使用 $elemMatch。我們先使用文件建立一個集合 -

> db.getMatchingDocumentDemo.insertOne(
   {
      _id :1,
      "UserDetails":[
         {
            "UserName":"John",
            "UserAge":23
         }
      ]
   }
);
{ "acknowledged" : true, "insertedId" : 1 }
> db.getMatchingDocumentDemo.insertOne( { _id :2, "UserDetails":[ { "UserName":"Larry", "UserAge":24 } ] } );
{ "acknowledged" : true, "insertedId" : 2 }

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

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

這將產生以下輸出 -

{
   "_id" : 1,
   "UserDetails" : [
      {
         "UserName" : "John",
         "UserAge" : 23
      }
   ]
}
{
   "_id" : 2,
   "UserDetails" : [
      {
         "UserName" : "Larry",
         "UserAge" : 24
      }
   ]
}

以下是獲取 MongoDB 中陣列中匹配文件的查詢 -

> db.getMatchingDocumentDemo.find({UserDetails: {$elemMatch: {UserAge: 24}}});

這將產生以下輸出 -

{ "_id" : 2, "UserDetails" : [ { "UserName" : "Larry", "UserAge" : 24 } ] }

更新於:2019 年 7 月 30 日

109 次瀏覽

開啟你的 職業

透過完成課程以獲得認證

開始學習
廣告
© . All rights reserved.