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" }); // ๋ฐ์ดํฐ ์กฐํ