Mongoose - YooByWk/YooByWk.github.io GitHub Wiki

Mongoose

Mongoose๋Š” Node.js ํ™˜๊ฒฝ์—์„œ MongoDB๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃจ๋Š”๋ฐ ์œ ์šฉํ•œ ODM (Object Data Modeling) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.

MongoDB์˜ NoSQL ํŠน์„ฑ์„ Node.js์˜ ํ™˜๊ฒฝ์—์„œ ๊ฐ์ฒด ์ง€ํ–ฅ์  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค.

์—ญํ• 

  • ์Šคํ‚ค๋งˆ ์ •์˜ : ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ํƒ€์ž…, ๊ธฐ๋ณธ๊ฐ’, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋“ฑ ๊ฐ•์ œ๋ฅผ ํ†ตํ•œ ๋ฌด๊ฒฐ์„ฑ ํ™•๋ณด
  • ๋ชจ๋ธ๋ง : ์ปฌ๋ ‰์…˜์— ๋Œ€์‘ํ•˜๋Š” ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ถ”์ƒํ™”๋œ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์‹คํ–‰
  • ๋ฏธ๋“ค์›จ์–ด : ์ €์žฅ, ์‚ญ์ œ ๋“ฑ ํŠน์ • ์ด๋ฒคํŠธ ์ „/ํ›„ ์‹คํ–‰๋˜๋Š” ๋กœ์ง ์ •์˜ ๊ฐ€๋Šฅ
  • ํŽธ์˜์„ฑ ๊ธฐ๋Šฅ

์ฃผ์š” ์š”์†Œ

์Šคํ‚ค๋งˆ

Mongoose์—์„œ ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋‹จ์œ„

const userSchema = new mongoose.Schema({
  name: { type: String, required: true }, // ํ•„์ˆ˜ ํ•„๋“œ ์„ค์ •
  email: { type: String, unique: true }, // ๊ณ ์œ ์„ฑ ์ œ์•ฝ์กฐ๊ฑด ์„ค์ •
  createdAt: { type: Date, default: Date.now }, // ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •
});

๋ชจ๋ธ

// User ๋ชจ๋ธ <=> 'users' ์ปฌ๋ ‰์…˜ ๋Œ€์‘.
const User = mongoose.model("User", userSchema);

// e.g.
const newUser = new User({ name: "Alice", email: "[email protected]" });
await newUser.save(); // ๋ฐ์ดํ„ฐ ์ €์žฅ
const users = await User.find({ name: "Alice" }); // ๋ฐ์ดํ„ฐ ์กฐํšŒ