DBMS/MongoDB

[MONGO] πŸ“š ν•„λ“œ μˆ˜μ • μ—°μ‚°μž

인파_ 2021. 11. 15. 21:09

λͺ½κ³ λ””λΉ„-ν•„λ“œμˆ˜μ •-μ—°μ‚°μž

 

ν•„λ“œ μˆ˜μ • μ—°μ‚°μž

λ‹€νλ¨ΌνŠΈμ˜ ν•„λ“œλ₯Ό μˆ˜μ •ν•˜λŠ” μ—°μ‚°μžλ“€μž…λ‹ˆλ‹€.

제일 많이 μ“°μ΄λŠ” μ—°μ‚°μžμ΄κΈ° λ•Œλ¬Έμ— κΌ­ μ•Œμ•„λ‘˜ ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€.

 

$inc

  • ν•„λ“œ 값을 μ¦κ°€μ‹œν‚€κ±°λ‚˜ κ°μ†Œμ‹œν‚€λŠ” μ—°μ‚°μžμž…λ‹ˆλ‹€.
  • μ–‘μˆ˜λ©΄ 증가, 음수면 κ°μ†Œμž…λ‹ˆλ‹€.
{ $inc: { ν•„λ“œ: 1 } } // ν•„λ“œμ˜ 값을 1 증가

 

$mul

  • ν•„λ“œ 값에 κ³±ν•˜λŠ” μ—°μ‚°μžμž…λ‹ˆλ‹€.
  • 1보닀 큰 수λ₯Ό κ³±ν•˜λ©΄ 컀지고, 1보닀 μž‘μ€ 수λ₯Ό κ³±ν•˜λ©΄ μž‘μ•„μ§‘λ‹ˆλ‹€.
  • 쿼리의 μˆœμ„œμ— μ‘°μ‹¬ν•˜μ„Έμš”. $incλŠ” ν•„λ“œ μ•ˆμ˜ μ†μ„±μ΄μ—ˆλ‹€λ©΄, μ΄λ²ˆμ—λŠ” ν•„λ“œκ°€ $mul μ•ˆμ˜ μ†μ„±μž…λ‹ˆλ‹€.
{ $mul: { ν•„λ“œ: 2 } } // ν•„λ“œμ˜ 값을 두배 증가

 

$rename

  • ν•„λ“œ 이름을 λ°”κΎΈλŠ” μ—°μ‚°μžμž…λ‹ˆλ‹€.
  • μ—¬λŸ¬ ν•„λ“œλ₯Ό λ™μ‹œμ— ꡐ체할 수 μžˆμŠ΅λ‹ˆλ‹€.
{ $rename: { ν•„λ“œ1: 이름, ν•„λ“œ2: 이름, ... } }

 

$set

  • ν•΄λ‹Ή ν•„λ“œ 값을 λ‹€λ₯Έ κ²ƒμœΌλ‘œ κ΅μ²΄ν•©λ‹ˆλ‹€.
  • 주둜 Updateλ¬Έκ³Ό 같이 μ“°μž…λ‹ˆλ‹€.
{ $set: { ν•„λ“œ1: κ°’, ν•„λ“œ2: κ°’, ... } }

 

$setOnInsert

  • $setκ³Ό λΉ„μŠ·ν•œλ° upsert(update + insert)의 κ²½μš°μ—λ§Œ μž‘λ™ν•©λ‹ˆλ‹€.
  • λ§Œμ•½ upsertκ°€ μΌμ–΄λ‚˜μ§€ μ•ŠμœΌλ©΄ 아무 λ™μž‘λ„ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
{ $setOnInsert: { ν•„λ“œ1: κ°’, ν•„λ“œ2: κ°’, ... } }

 

$unset

  • ν•΄λ‹Ή ν•„λ“œλ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.
  • λ§Œμ•½ λ°°μ—΄μ˜ μš”μ†Œλ₯Ό $unsetν•œ κ²½μš°μ—λŠ” μ œκ±°ν•˜μ§„ μ•Šκ³  null둜 κ΅μ²΄ν•©λ‹ˆλ‹€.
{ $unset: { ν•„λ“œ1: '', ν•„λ“œ2: '', ... } }

 

$min

  • ν•„λ“œμ˜ 값이 주어진 값보닀 클 경우 μƒˆ κ°’μœΌλ‘œ κ΅μ²΄ν•©λ‹ˆλ‹€.
  • λ§Œμ•½ μ›λž˜ 값이 200μ΄μ—ˆκ³  $min의 값이 150μ΄μ—ˆλ‹€λ©΄ 150으둜 λ°”λ€λ‹ˆλ‹€.
  • κΈ°μ‘΄ 기둝을 κ²½μ‹ ν•˜λŠ” 경우 μ‚¬μš©λ©λ‹ˆλ‹€.
{ $min: { ν•„λ“œ1: κ°’, ν•„λ“œ2: κ°’, ... } }

 

$max

  • ν•„λ“œμ˜ 값이 주어진 값보닀 μž‘μ„ 경우 μƒˆ κ°’μœΌλ‘œ κ΅μ²΄ν•©λ‹ˆλ‹€.
  • λ§Œμ•½ μ›λž˜ 값이 800μ΄μ—ˆκ³  $max의 값이 950이라면, 950으둜 λ°”λ€λ‹ˆλ‹€.
  • κΈ°μ‘΄ 기둝을 κ²½μ‹ ν•˜λŠ” 경우 μ‚¬μš©λ©λ‹ˆλ‹€.
{ $max: { ν•„λ“œ1: κ°’, ν•„λ“œ2: κ°’, ... } }

 

$currentDate

  • ν•΄λ‹Ή ν•„λ“œ 값을 ν˜„μž¬ λ‚ μ§œλ‘œ κ΅μ²΄ν•©λ‹ˆλ‹€.
  • 두 가지 νƒ€μž…μ˜ ν˜„μž¬ λ‚ μ§œκ°€ μžˆλŠ”λ° ν•˜λ‚˜λŠ” 기본적으둜 μ“°μ΄λŠ” Date이고 λ‹€λ₯Έ ν•˜λ‚˜λŠ” Timestampμž…λ‹ˆλ‹€.
  • κΈ°λ³Έ νƒ€μž…μ„ μ‚¬μš©ν•˜λ €λ©΄ κ·Έλƒ₯ trueν•˜λ©΄ 되고, timestamp νƒ€μž…μ„ μ‚¬μš©ν•˜λ €λ©΄ $type μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.
{ $currentDate: { ν•„λ“œ: true } }

{ $currentDate: { ν•„λ“œ: { $type: 'timestamp' } } }

Reference

https://www.zerocho.com/category/MongoDB/post/57a469bf7c4a5115004e97ea