首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeORM FindOptionsWhere中的可选属性

TypeORM FindOptionsWhere中的可选属性
EN

Stack Overflow用户
提问于 2022-06-09 14:42:19
回答 1查看 670关注 0票数 0

我正试图从我的数据库中获取不同类型问题的翻译。问题是,有些问题是有选择的,有些则没有。

代码语言:javascript
运行
复制
    const where: FindOptionsWhere<QuestionTranslation> = {
      question: {
        // some other props
        options: { // this needs to be optional
          translations: {
            lang: In([localeCode, baseLocaleCode, LocaleCode.en]),
          },
        },
      },
    };

    const questionTranslations = await this.questionTranslationRepository.find({
      where,
    });

如果我删除options属性,我会得到所有的翻译,但是在有选项的问题上,选项的翻译显然是缺失的。如果我把它包括在内,没有选择的问题就会被排除在外。

我希望避免两次调用数据库(分别包含或排除options属性的FindOptionsWhere对象)。像这样的东西会很好:

代码语言:javascript
运行
复制
        options: {
          [if exists]: {
            translations: {
              lang: In([localeCode, baseLocaleCode, LocaleCode.en]),
            },
          },
        },

这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-09 16:16:28

尝试使用以下方法。

Wrapping the where-clause in an array, will translate to an OR condition in SQL

代码语言:javascript
运行
复制
import { IsNull } from "typeorm";

const questionTranslations = await this.questionTranslationRepository.find({
  where: [
    { question: { options: IsNull() } },
    { question: {
      options: {
        translations: {
          lang: In([localeCode, baseLocaleCode, LocaleCode.en]),
        },
      },
    }}
  ],
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72562311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档