MongoDB 查詢可統計文件中陣列項的數量,並在新欄位中顯示


要在文件中統計陣列項的數量,請在 MongoDB 中使用 $size。讓我們建立一個包含文件的集合 −

> db.demo703.insertOne({"ListOfSubject":["MySQL","MongoDB"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebaf551299a9f98c93b4")
}
> db.demo703.insertOne({"ListOfSubject":["Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebb5551299a9f98c93b5")
}
> db.demo703.insertOne({"ListOfSubject":["C","C++","Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebbf551299a9f98c93b6")
}

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

> db.demo703.find();

這將生成以下輸出 −

{ "_id" : ObjectId("5ea6ebaf551299a9f98c93b4"), "ListOfSubject" : [ "MySQL", "MongoDB" ] }
{ "_id" : ObjectId("5ea6ebb5551299a9f98c93b5"), "ListOfSubject" : [ "Java" ] }
{ "_id" : ObjectId("5ea6ebbf551299a9f98c93b6"), "ListOfSubject" : [ "C", "C++", "Python" ] }

以下是用於統計陣列項數量的查詢 −

>db.demo703.aggregate({$project:{NumberOfItemsInEachArray:{$size:"$ListOfSubject"}}}).pretty();

這將生成以下輸出 −

{
   "_id" : ObjectId("5ea6ebaf551299a9f98c93b4"),
   "NumberOfItemsInEachArray" : 2
}
{
   "_id" : ObjectId("5ea6ebb5551299a9f98c93b5"),
   "NumberOfItemsInEachArray" : 1
}
{
   "_id" : ObjectId("5ea6ebbf551299a9f98c93b6"),
   "NumberOfItemsInEachArray" : 3
}

更新於: 14-05-2020

113 次瀏覽

開啟你的 事業

完成課程後獲得認證

開始
廣告