MongoDB and Mongoose package - MrKwon/node.js GitHub Wiki

MongoDB๋ž€

  1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉ
  2. ํŠน์ƒ‰์ด ๋šœ๋ ทํ•œ NoSQL(Not only SQL)
  3. ํŠน์ง•
  • ๋ฐ์ดํ„ฐ ๊ทœ์น™ ์—†์ด ์ž์œ ๋กœ์šด ์ž…๋ ฅ๊ฐ€๋Šฅ
  • ์ปฌ๋ ‰์…˜ ๊ฐ„์˜ JOIN ๋ถˆ๊ฐ€
  • Transaction ๋ถˆ๊ฐ€
  • ํ™•์žฅ์„ฑ / ๊ฐ€์šฉ์„ฑ์ด ๋†’์Œ
  • Collection(MySQL - Table), Document(MySQL - Row), Field(MySQL - Column)
  1. Collection์—๋Š” MySQL๊ณผ ๋‹ค๋ฅด๊ฒŒ Column ์ •์˜๊ฐ€ ํ•„์š”์—†์Œ

MongoDB์˜ CRUD

  1. Create
db.[collection_name].save({ data properties });
  1. Read
db.[collection_name].find({ /* ์กฐํšŒ์‹œ ์กฐ๊ฑด properties */ } [, { /*์กฐํšŒํ•  ํ•„๋“œ properties - 1(๊ฐ€์ ธ์˜ฌ ๊ฐ’) / 0(์•ˆ ๊ฐ€์ ธ์˜ฌ ๊ฐ’)*/ } );

์กฐ๊ฑด์— ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ž (

  • $gt : greater than
  • $gte : greater than and equal
  • $lt : less than
  • $lte : less than and equal
  • $ne : not equal
  • $or : or
  • $in : element in array
  1. Update
db.[collection_name].update({ /* ์ˆ˜์ •ํ•  document ์ง€์ • */}, { $set/* ์–ด๋–ค ํ•„๋“œ๋ฅผ ์ˆ˜์ • ํ• ์ง€ ์ •ํ•˜๋Š” ์—ฐ์‚ฐ์ž, ์—†์œผ๋ฉด ๊ฐ์ฒด๊ฐ€ ํ†ต์ฒด๋กœ ๋ฐ”๋€œ*/: { /* ์ˆ˜์ •ํ•  properties */ } });
  1. Delete
db.[collection_name].remove({ /* ์ˆ˜์ •ํ•  document ์ง€์ • */ });

Mongoose๋ž€

  • ODM(Object Document Mapping) - MongoDB๋Š” Relation์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— [Sequelize์™€ ๋‹ค๋ฅด๋‹ค].(https://github.com/MrKwon/node.js/wiki/Sequelize-Module#sequelize๋ž€), ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ Document(MySQL์˜ Relation๊ฒฉ)์„ ๋งคํ•‘ํ•ด์ฃผ๋Š” ๋„๊ตฌ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(MongoDB)์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(Mongoose)๋ฅผ ๋งคํ•‘ํ•˜๋Š” ์ด์œ ๋Š” ๋‘๊ฐœ๊ฐ€ ๋ณด์™„์  ๊ด€๊ณ„์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ๋ชฝ๊ตฌ์Šค์—๋Š” ์Šคํ‚ค๋งˆ๊ฐ€ ์žˆ๋‹ค. - ์Šคํ‚ค๋งˆ๋Š” ๋…ธ๋“œ ์„œ๋ฒ„๋‹จ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ ํ•„ํ„ฐ๋ง ํ•ด์ค€๋‹ค. => MongoDB์—์„œ ์‹ค์ˆ˜ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ด์ค€๋‹ค.
  • ๋ชฝ๊ตฌ์Šค์˜ populate() ๋ฉ”์„œ๋“œ๋กœ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ๋„์™€์ค€๋‹ค.