如何从 typeorm find“query”获取不同的值

dil*_*aka 3 typeorm nestjs

我正在尝试在 typeorm 上实现以下查询,但无法过滤掉不同的值。

SELECT DISTINCT name, description, style, spec2, div FROM clothes WHERE name = 'CMD' and div  in ('B01', 'B06', 'B07', 'B09')
Run Code Online (Sandbox Code Playgroud)

我现有的代码如下所示。

    this._itemRepository.find({
      where: {
        "name" : "values",
        "div" : In(["v1","v2"])
      },
   })
Run Code Online (Sandbox Code Playgroud)

find() 方法的参数是FindManyOptions类型,但它没有任何与不同值相关的属性。请帮我找到方法

Qui*_*ort 6

该方法没有这样的选项find。对于更高级的查询,您可以使用queryBuilder类似的方法:

this._itemRepository.createQueryBuilder('clothes')
.select(['name', 'description', 'style', 'spec2', 'div'])
.where('name = CMD AND div IN (B01, B06, B07, B09)')
.distinct()
Run Code Online (Sandbox Code Playgroud)

编辑:(也许您需要将“CMD”、“B01”等字符串放入引号中)

或者你也可以这样做:

this._itemRepository.createQueryBuilder('clothes')
.select('DISTINCT(name)')
.where('name = CMD AND div IN (B01, B06, B07, B09)')
Run Code Online (Sandbox Code Playgroud)