在mongodb的聚合内调用函数?

在mongodb的聚合内调用函数?,第1张

在mongodb的聚合内调用函数?

外部函数不适用于聚合框架。一切都会在输入时解析为BSON,因此不允许Javascript或其他任何内容。从BSON“运算符”定义到本机C
++代码实现,基本上都将这些处理完毕,因此它确实非常快。

这就是将您期望的逻辑“转换”为聚合框架可以处理的逻辑。其实有“逻辑”运营商,如

$or



$and

在这方面的工作:

db.collection.aggregate([    { "$project": {       "_id": 1,       "status": {"$cond": [    { "$or": [        // Your first set of rules requires "false" for "flag1" or         // "flag2" and "true" for "flag3"        { "$and": [ { "$not": [     { "$or": [ "$flag1", "$flag2" ] }, ]}, "$flag3"        ]},        // Your second set of rules requires "true" for "flag1" or         // "flag2" and "false" for "flag3"        { "$and": [ { "$or": [ "$flag1", "$flag2" ] }, { "$not": [ "$flag3" ] }        ]},    ]},    "ok",    "broken"]       }    }}])

因此,没有外部功能,只需使用聚合框架提供的运算符来实现逻辑。除了基本的逻辑实现外,还有

$not

“逆向”的斜率,
$cond

它充当“三元”,以便提供与
true/false
评估结果不同的结果。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5171882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存