温馨提示×

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

小樊
82
2024-10-30 22:16:41
栏目: 云计算

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

  1. $project:用于指定返回的字段或计算字段。可以包含字段名、计算表达式或者字段路径。

    示例:

    db.collection.find({}, { "name": 1, "_id": 0 }) // 返回文档中的"name"字段,不返回"_id"字段
    
  2. $addFields / $set:用于向投影结果中添加新的字段或更新现有字段。

    示例:

    db.collection.find({}, { $addFields: { "age": 30 } }) // 添加新的"age"字段
    db.collection.find({}, { $set: { "age": 30 } }) // 更新现有的"age"字段
    
  3. $project$addFields / $set 的组合使用可以实现更复杂的字段操作,例如计算字段的值、条件性地包含或排除字段等。

    示例:

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

    示例:

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

这些操作符可以组合使用,以实现更复杂的投影查询需求。

0