1. 程式人生 > >mongodb aggregate

mongodb aggregate

包含 使用 聚合 多條 意思 聚合管道 重命名 數量 limit

  • $project:修改輸入文檔的結構。可以用來重命名、增加或刪除域,也可以用於創建計算結果以及嵌套文檔。
  • $match:用於過濾數據,只輸出符合條件的文檔。$match使用MongoDB的標準查詢操作。
  • $limit:用來限制MongoDB聚合管道返回的文檔數。
  • $skip:在聚合管道中跳過指定數量的文檔,並返回余下的文檔。
  • $unwind:將文檔中的某一個數組類型字段拆分成多條,每條包含數組中的一個值。
  • $group:將集合中的文檔分組,可用於統計結果。
  • $sort:將輸入文檔排序後輸出。
  • $geoNear:輸出接近某一地理位置的有序文檔。

查詢時,使用區分先後順序

比如

{
$unwind:"$lists"
},
{
$project:{id:"$lists.id",name:"$lists.name"}
},
{

$match:{id:"1"}
}

lists 是文檔中某個數組集合[{},{}]

意思就是 unwind先對文檔數組拆分成多個文檔,多個文檔的字段受project影響,然後match 返回數組集合lists中id為1的名稱。

註意 的是 match 條件中id 為 project 中 指定的id 而不是用lists.id

mongodb aggregate