我們可以在 MongoDB 中搜索物件陣列嗎?
是的,要搜尋物件陣列,請在 MongoDB aggregate() 中使用 $unwind。若要匹配,請使用 $match。我們建立一個包含文件的集合 −
> db.demo623.insertOne( ... { ... _id:1, ... details:[ ... { ... Name:"Chris" ... }, ... { ... DueDate:new ISODate("2020-01-10") ... }, ... { ... CountryName:"US" ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : 1 }
使用 find() 方法顯示集合中的所有文件 −
> db.demo623.find().pretty();
這將產生以下輸出 −
{ "_id" : 1, "details" : [ { "Name" : "Chris" }, { "DueDate" : ISODate("2020-01-10T00:00:00Z") }, { "CountryName" : "US" } ] }
以下是 MongoDB 中搜索物件陣列的查詢 −
> db.demo623.aggregate({$unwind: "$details"}, ... {$match: {"details.Name":"Chris"}}, ... {$project: {"details.Name": 1}})
這將產生以下輸出 −
{ "_id" : 1, "details" : { "Name" : "Chris" } }
廣告