如何在 MongoDB 中查詢與同一陣列元素匹配的文件?


若要查詢與同一陣列元素匹配的文件,請使用 find() 並在其中使用 $all。 $all 運算子選擇文件,該文件中的某個欄位的值是包含指定所有元素的陣列。

讓我們建立一個帶文件的集合 −

> db.demo543.insertOne({id:101, subject:["MySQL", "Java" ,"C","Python"]});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8e1b2f9e5f92834d7f05c9")
}
> db.demo543.insertOne({id:102, subject:["MySQL", "MongoDB" ,"SQL Server"]});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8e1b2f9e5f92834d7f05ca")
}

藉助 find() 方法顯示集合中的所有文件 −

> db.demo543.find();

這將產生以下輸出 −

{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05c9"), "id" : 101, "subject" : [ "MySQL", "Java", "C", "Python" ] }
{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05ca"), "id" : 102, "subject" : [ "MySQL", "MongoDB", "SQL Server" ] }

以下是查詢可在 MongoDB 中找到與同一陣列元素匹配的文件 −

> db.demo543.find({
...    "subject": { $all: [ "MySQL", "MongoDB", "SQL Server"], $size: 3 }
... })

這將產生以下輸出 −

{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05ca"), "id" : 102, "subject" : [ "MySQL", "MongoDB", "SQL Server" ] }

更新日期:14-May-2020

338 次瀏覽

開啟您的 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.