你想在 MongoDB 聚合管道里比较两列的大小,可以用 $subtract
做差值,然后根据结果判断哪个更大。
假设你的文档结构是:
{ "fieldA": 10, "fieldB": 7}php33 Bytes© 菜鸟-创作你的创作
你想比较 fieldA
和 fieldB
,可以这样写聚合:
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
。fieldA
大于 fieldB
,用 $gt
来判断。{ "fieldA": 10, "fieldB": 7, "diff": 3, "isFieldAGreater": true}php73 Bytes© 菜鸟-创作你的创作
fieldA > fieldB
的文档,可以用 $match
:db.collection.aggregate([ { $match: { $expr: { $gt: ["$fieldA", "$fieldB"] } } }])php101 Bytes© 菜鸟-创作你的创作
这里 $expr
允许你在 $match
中使用聚合表达式。
https://www.52runoob.com/archives/5442
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。