溫馨提示×

MongoDB投影查詢支持哪些操作符

小樊
82
2024-10-30 22:16:41
欄目: 云計算

在MongoDB中,投影查詢主要用于指定返回文檔中的哪些字段或計算字段。投影查詢主要使用以下操作符:

  1. $project:用于指定返回的字段或計算字段??梢园侄蚊?、計算表達(dá)式或者字段路徑。

    示例:

    db.collection.find({}, { "name": 1, "_id": 0 }) // 返回文檔中的"name"字段,不返回"_id"字段
    
  2. $addFields / $set:用于向投影結(jié)果中添加新的字段或更新現(xiàn)有字段。

    示例:

    db.collection.find({}, { $addFields: { "age": 30 } }) // 添加新的"age"字段
    db.collection.find({}, { $set: { "age": 30 } }) // 更新現(xiàn)有的"age"字段
    
  3. $project$addFields / $set 的組合使用可以實(shí)現(xiàn)更復(fù)雜的字段操作,例如計算字段的值、條件性地包含或排除字段等。

    示例:

    db.collection.find({}, { $project: { "name": 1, "age": 1, "_id": 0 }, $addFields: { "isAdult": { $gt: ["$age", 18] } } }) // 返回"name"、"age"字段,添加新的"isAdult"字段,表示是否成年
    
  4. $expr:用于在投影查詢中使用聚合表達(dá)式。

    示例:

    db.collection.find({}, { $project: { "name": 1, "isEvenAge": { $expr: { $eq: ["$age", { $mod: ["$age", 2] }] } } } }) // 返回"name"字段,添加新的"isEvenAge"字段,表示年齡是否為偶數(shù)
    

這些操作符可以組合使用,以實(shí)現(xiàn)更復(fù)雜的投影查詢需求。

0