Find 选项-基础选项
所有存储库和管理器find方法都接受可用于查询所需数据的特殊选项,而无需使用QueryBuilder
// select - 表示必须选择对象的哪些属性
userRepository.find({ select: ["firstName", "lastName"] });
// relations - 关系需要加载主体。 也可以加载子关系(join 和 leftJoinAndSelect 的简写)
userRepository.find({ relations: ["profile", "photos", "videos"] });
// join - 需要为实体执行联接,扩展版对的"relations"。
// where -查询实体的简单条件。
userRepository.find({ where: { firstName: "Timber", lastName: "Saw" } });
// 使用 OR 运算符查询:
userRepository.find({
where: [{ firstName: "Timber", lastName: "Saw" }, { firstName: "Stan", lastName: "Lee" }]
});
// order 排序 "ASC" | "DESC" | 1 | -1
userRepository.find({order: {id: "DESC"}});
// 分页
userRepository.find({skip: 5,take: 10});
// cache - 启用或禁用查询结果缓存
userRepository.find({cache: true});
Find 选项-进阶选项
TypeORM 提供了许多内置运算符,可用于创建更复杂的查询
// Not:SELECT * FROM "user" WHERE "firstName" != '张'
const loadedPosts = await userRepository.find({
firstName: Not("张") });
// LessThan:SELECT * FROM "user" WHERE "age" < 10
const loadedPosts = await userRepository.find({
age: LessThan(10) });
// LessThanOrEqual:将执行
SELECT * FROM "user" WHERE "age" <= 10
const loadedPosts = await userRepository.find({
age: LessThanOrEqual(10) });
// MoreThan:SELECT * FROM "user" WHERE "age" > 10
const loadedPosts = await userRepository.find({
age: MoreThan(10) });
// MoreThanOrEqual: SELECT * FROM "user" WHERE "age" > = 10
const loadedPosts = await userRepository.find({
age: MoreThanOrEqual(10) });
// Equal: SELECT * FROM "user" WHERE "age" = 10
const loadedPosts = await userRepository.find({
age: Equal(10) });
// Like:SELECT * FROM "user" WHERE "firstName" LIKE '%
张%'
const loadedPosts = await userRepository.find({
firstName: Like("%张%") });
// Between:
SELECT * FROM "user" WHERE "age" BETWEEN 1 AND 10
const loadedPosts = await userRepository.find({
age: Between(1, 10) });
// In: SELECT * FROM "user" WHERE "age" IN (10,20,30)
const load