【问题标题】:TypeORM AND Find OptionTypeORM AND 查找选项
【发布时间】:2022-02-25 02:11:10
【问题描述】:

我有价格的产品,我想查找价格小于 10 但大于 5 的产品。因此 SQL 查询如下所示:

SELECT * FROM products WHERE products.price < 10 AND products.price > 5

不使用查询生成器是否可以做到这一点?

我在文档中找不到 And 运算符

【问题讨论】:

  • 请修改您的帖子标题以提出明确、具体的问题。见How to Ask

标签: javascript typescript postgresql nestjs typeorm


【解决方案1】:

您只需要使用 where 运算符即可。

userRepository.find({ where: { firstName: "Timber", lastName: "Saw" } });

这段代码执行这个查询:

SELECT * FROM "user" WHERE "firstName" = 'Timber' AND "lastName" = 'Saw'

如果你想使用 OR,你可以使用一系列条件:

userRepository.find({
    where: [
        { firstName: "Timber", lastName: "Saw" },
        { firstName: "Stan", lastName: "Lee" },
    ],
});

这段代码将执行这个查询:

SELECT * FROM "user" WHERE ("firstName" = 'Timber' AND "lastName" = 'Saw') OR ("firstName" = 'Stan' AND "lastName" = 'Lee')

文档中的更多信息:https://github.com/typeorm/typeorm/blob/master/docs/find-options.md

【讨论】:

  • 这仅在您的搜索参数不同时才有效,但是我需要为价格设置两个条件,这会导致错误,因为您无法传递 { price: 'somethig', price: 'something " }
  • 那么你想要的是“Between”运算符。看我帖子里的链接,“Between”、“lessThan”或“moreThan”之类的操作符都有解释。
【解决方案2】:

这些文档阐明了如何像 SQL 一样使用 find https://orkhan.gitbook.io/typeorm/docs/find-options

请注意,对于条件 where 和其他语句,您需要 QueryBuilder。

【讨论】:

    猜你喜欢
    • 2022-10-20
    • 2019-06-23
    • 1970-01-01
    • 2020-12-09
    • 2020-10-03
    • 2021-07-20
    • 2021-03-17
    • 1970-01-01
    • 2022-06-28
    相关资源
    最近更新 更多