首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MongoDB比较两列大小 使用$subtract函数

MongoDB比较两列大小 使用$subtract函数

原创
作者头像
用户3672714
发布2025-08-08 11:22:31
发布2025-08-08 11:22:31
8900
代码可运行
举报
运行总次数:0
代码可运行

你想在 MongoDB 聚合管道里比较两列的大小,可以用 $subtract 做差值,然后根据结果判断哪个更大。


用法示例

假设你的文档结构是:

代码语言:javascript
代码运行次数:0
运行
复制
{  "fieldA": 10,  "fieldB": 7}php33 Bytes© 菜鸟-创作你的创作

你想比较 fieldA 和 fieldB,可以这样写聚合:

代码语言:javascript
代码运行次数:0
运行
复制
db.collection.aggregate([  {    $project: {      fieldA: 1,      fieldB: 1,      diff: { $subtract: ["$fieldA", "$fieldB"] },      isFieldAGreater: { $gt: [ { $subtract: ["$fieldA", "$fieldB"] }, 0 ] }    }  }])php220 Bytes© 菜鸟-创作你的创作

解释

  • $subtract: ["$fieldA", "$fieldB"] 会计算 fieldA - fieldB
  • 如果差值大于 0,则说明 fieldA 大于 fieldB,用 $gt 来判断。

示例结果

代码语言:javascript
代码运行次数:0
运行
复制
{  "fieldA": 10,  "fieldB": 7,  "diff": 3,  "isFieldAGreater": true}php73 Bytes© 菜鸟-创作你的创作

如果想筛选出 fieldA > fieldB 的文档,可以用 $match

代码语言:javascript
代码运行次数:0
运行
复制
db.collection.aggregate([  {    $match: {      $expr: { $gt: ["$fieldA", "$fieldB"] }    }  }])php101 Bytes© 菜鸟-创作你的创作

这里 $expr 允许你在 $match 中使用聚合表达式。

https://www.52runoob.com/archives/5442

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用法示例
  • 解释
  • 示例结果
  • 如果想筛选出 fieldA > fieldB 的文档,可以用 $match:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档