๐exists() ์ existBy() ์์๋ณด๊ธฐ
โพexists() , existBy()
typeorm์์ ๋ฐ์ดํฐ์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๋๋ฐ ์ฌ์ฉ๋๋ ๋ฉ์๋์๋ exists()์ existBy() ๊ฐ ์กด์ฌํ๋ค. ๋ ๋ฉ์๋ ๋ชจ๋ true, false๋ก ์กด์ฌ ์ฌ๋ถ๋ฅผ booleanํ์ ์ผ๋ก ๋ฐํํด์ฃผ์ง๋ง, ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์กด์ฌํ๋ค.
์ด ๋ฉ์๋์ ์ฌ์ฉ๋ฒ์ ์์ธํ ์์๋ณด๊ฒ ๋ ๊ฒ์, ์ด๋ค ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋๊ฒ ๋ ํจ์จ์ ์ผ๊น? ์ ๋ํ ๊ถ๊ธ์ฆ ๋๋ฌธ์ด์๋ค. ์ด๋ค ์ฐจ์ด๊ฐ ์กด์ฌํ๋ ๊ฑธ๊น?
์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ ค๊ณ ํ๋๋ฐ, ์ด ์ฐจ์ด์ ์ ๋ํ ์๋ฃ๋ฅผ ์ฐพ๊ธฐ ์ด๋ ค์ ๋ค.
โพexists()
ยท ์ฉ๋
์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ค.
ยท ์ฌ์ฉํ๊ฒฝ
์ฃผ๋ก ๋ณต์กํ ์กฐ๊ฑด์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ค.
ยท ๋ฌธ๋ฒ
FindManyOptions๋ฅผ ์ง์ํ๋ฉฐ, ๋ค์ํ ์กฐ๊ฑด์ ํฌํจํ ์ ์ฐํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋ค.
await repository.exists({
where: { ... }, // FindManyOptions์ where ์กฐ๊ฑด
});
ยท ํน์ง
1) FindManyOptions๋ฅผ ์ง์ํ๋ฉฐ, ๋ค์ํ ์กฐ๊ฑด์ ํฌํจํ ์ ์ฐํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋ค. FindManyOptions๋ก ์์ฑํ๋ ๋ชจ๋ ์ต์ (์ ๋ ฌ, ํ์ด์ง, ๊ด๊ณ ํฌํจ ๋ฑ)์ ์ง์ํ๋ค
2) ๋ณต์กํ ์ฟผ๋ฆฌ์ ์ ํฉํ๋ค.
ยท ์์
const isExist = await userRepository.exists(){
where: { name: 'dani', age: 11 },
});
console.log(isExist); // true or false
โพexistsBy()
ยท ์ฉ๋
๋จ์ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ค.
ยท ์ฌ์ฉํ๊ฒฝ
๋จ์ ์กฐ๊ฑด์ผ๋ก ์กด์ฌ ์ฌ๋ถ๋ง ํ์ธํ ๋ ์ฌ์ฉ๋๋ค.
ยท ๋ฌธ๋ฒ
FindOptionsWhere๋ง ์ฌ์ฉํ์ฌ ํน์ ์กฐ๊ฑด์๋ง ์ด์ ์ ๋ง์ถ๋ค.
await repository.existsBy(){
... // FindOptionsWhere ์กฐ๊ฑด๋ง
});
ยท ํน์ง
1) FindOptionsWhere๋ง ์ง์ํ๋ฏ๋ก ๋จ์ ์กฐ๊ฑด์ ํ์ธํ ๋ ๋ ๊ฐ๊ฒฐํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
2) ๋ณต์กํ ์กฐ๊ฑด์ ์ง์ํ์ง ์์ผ๋ฏ๋ก, ๋จ์ํ ์กด์ฌ ํ์ธ์ ์ ํฉํ๋ค.
ยท ์์
const isExist = await userRepository.existBy({ name: 'dani' });
console.log(isExist); //true or false
โพ๊ฒฐ๋ก
exists | existBy | |
๊ฒ์์กฐ๊ฑด | FindManyOptions (๋ค์ํ ์ฟผ๋ฆฌ ์ต์ ) | FindOptionsWhere (๋จ์ ์กฐ๊ฑด) |
ํน์ง | ๋ณต์กํ ์กฐ๊ฑด ๋ฐ ํ์ด์ง, ์ ๋ ฌ ๋ฑ ์ถ๊ฐ ์ฟผ๋ฆฌ ์ต์ ์ง์ | ๋จ์ ์กฐ๊ฑด์ ์ง์ค |
์ฌ์ฉ ํ๊ฒฝ | ๋ณต์กํ ์กฐ๊ฑด์ด๋ ์ถ๊ฐ์ ์ธ ์ฟผ๋ฆฌ ์ต์ ์ด ํ์ํ ๋ | ๋น ๋ฅด๊ณ ๊ฐ๋จํ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ ๋ |
๋จ์ํ ์กฐ๊ฑด์ผ๋ก ๋ฐ์ดํฐ์ ์กด์ฌ ์ฌ๋ถ๋ง ํ์ธํ๊ณ ์ถ์ ๊ฒฝ์ฐ๋ผ๋ฉด existsBy() ๋ฉ์๋๋ฅผ,
์ฌ๋ฌ ๊ฐ์ง ์กฐ๊ฑด์ด๋ ์ถ๊ฐ ์ฟผ๋ฆฌ ์ต์ ์ ์ ์ฉํด์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๊ฒฝ์ฐ๋ผ๋ฉด exists() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์!