我正在利用 engine.Host 类创建自己的规则引擎实例,并通过 JSON 文件加载规则并调用 set_rulesets() 方法。这一切都运行良好。
持久规则:https://pypi.org/project/durable-rules/
但是,对于我的规则之一,我需要进行否定。我不确定语法。否定另一个子句的正确方法是什么?例如,考虑以下规则:
"r_1": {
"all": [
{"first": {"condition": "foo"}},
{"second": {
"$and": [
{"id": {"first": "id"}},
{"condition": "bar"}
]
}},
{"third": {
"$and": [
{"id": {"second": "id"}},
{"condition": "cat"}
]
}}
],
"run": "rule_fired"
}
我如何取条件的 NOT(第三个),例如,
第一和第二而不是第三
谢谢鲍登
durable-rules 不支持一元逻辑运算符。要否定第三个表达式,您可以使用 &neq
和 $or
。
{
"r_0": {
"all": [
{ "first": { "condition": "foo" }},
{ "second": {
"$and": [
{ "id": { "first": "id"}},
{ "condition": "bar"}
]
}
},
{ "third": {
"$or": [
{ "$neq": {"id": {"second": "id"}}},
{ "$neq": {"condition": "cat"}}
]
}
}
]
}
}
我是一名优秀的程序员,十分优秀!