Faunadb 条件语句不能运行 false 条件表达式

Faunadb conditional statement can't run false condition expression

我尝试使用 nextjs 和 faunadb 构建全文搜索 API。 我引用了这篇文章 "How to Get a Full-Text Search with FaunaDB" 我的索引设置如下。 此 API 将收到两个值 artist 和 term(搜索词的缩写)
如果有两个,则通过and语句合并。
或者它将 运行 有自己的语句或每个值。
实现代码如下。

const queryCase = req.body.artist && req.body.term ? 1 : req.body.term != undefined ? 2 : 3

const tokens = await serverClient.query(
   Filter(
      Paginate(Match(Index("all_token_by_artist_and_description"), true)),
      Lambda(
         [
            "artist",
            "description",
            "image",
            "seller",
            "creator",
            "category",
            "refId"
         ],
         If(
            Equals(queryCase, 1),
            And(
               Or(
                  ContainsStr(
                     LowerCase(Var("artist")), 
                     req.body.term
                  ),
                  ContainsStr(
                     LowerCase(Var("description")), 
                     req.body.term
                  )
               ),
               Equals(
                  LowerCase(Var('artist')), 
                  LowerCase(req.body.artist)
               )
            ),
            If(
               Equals(queryCase, 2),
               Or(
                  ContainsStr(
                     LowerCase(Var("artist")), 
                     req.body.term
                  ),
                  ContainsStr(
                     LowerCase(Var("description")), 
                     req.body.term
                  )
               ),
               Equals(
                  LowerCase(Var('artist')), 
                  LowerCase(req.body.artist)
               )
            )
         )
      )
   )
)

res.status(200).json(tokens.data)

它不能运行 false 条件表达式。错误的表达很好 当我切换真实表达和虚假表达时。
我通过进行 3 个单独的查询来修复它。

if(queryCase == 1){
   tokens = await serverClient.query(
              .....
   )
}else if(queryCase == 2){
   tokens = await serverClient.query(
              .....   
   )             
}else{
   tokens = await serverClient.query(
              .....
   )                
}

但我真的不知道原来的查询有什么问题。 谁能告诉我查询的问题?

是缺失值造成的。所以我在确定案例后将随机字符串分配给缺失值。 例如)如果我只从请求中获得“艺术家”值,请将随机字符串分配给“术语”。