diff --git a/query/query.go b/query/query.go index 642f69d..d87cca1 100644 --- a/query/query.go +++ b/query/query.go @@ -168,7 +168,9 @@ func test(data interface{}, userQuery interface{}) (bool, error) { if err != nil { return false, err } - + if rule.GetName() != "$exists" && data == nil { + return false, nil + } matched, err1 := rule.Match(data, v) if err1 != nil { @@ -198,6 +200,9 @@ func test(data interface{}, userQuery interface{}) (bool, error) { last = last && result } + if !last { + return false, nil + } } return last, nil