Docs Menu
Docs Home
/
MongoDB ๋งค๋‰ด์–ผ
/ / /

cursor.isExhausted()

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

  • ํ˜ธํ™˜์„ฑ
  • ํ–‰๋™
  • ์˜ˆ์‹œ
cursor.isExhausted()

์ค‘์š”

Mongo์‰ฌ ๋ฐฉ๋ฒ•

์ด๋Š” mongosh ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ์ด๋Š” Node.js ๋˜๋Š” ๊ธฐํƒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ณ„ ๋“œ๋ผ์ด๋ฒ„ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค .

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ mongosh ๋ฉ”์„œ๋“œ๋Š” ๋ ˆ๊ฑฐ์‹œ mongo shell ๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ถ€ ๋ ˆ๊ฑฐ์‹œ ๋ฉ”์„œ๋“œ๋Š” mongosh ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ ˆ๊ฑฐ์‹œ mongo ์…ธ ๋ฌธ์„œ๋Š” ํ•ด๋‹น MongoDB ์„œ๋ฒ„ ๋ฆด๋ฆฌ์Šค ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

MongoDB API ๋“œ๋ผ์ด๋ฒ„์˜ ๊ฒฝ์šฐ ์–ธ์–ด๋ณ„ MongoDB ๋“œ๋ผ์ด๋ฒ„ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค:๋ถ€์šธ

์ปค์„œ ๊ฐ€ ์ฝ์€ ํ˜„์žฌ ๋ฌธ์„œ ๋ฐฐ์น˜ ์— ๋ฌธ์„œ๊ฐ€ ๋‚จ์•„ ์žˆ๋Š” ๊ฒฝ์šฐ cursor.isExhausted() ์€ false ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด true ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ ํ™˜๊ฒฝ์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ๋ฐฐํฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • MongoDB Atlas: ํด๋ผ์šฐ๋“œ์—์„œ์˜ MongoDB ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์™„์ „ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค

์ฐธ๊ณ 

์ด ๋ช…๋ น์€ ๋ชจ๋“  MongoDB Atlas ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ช…๋ น์— ๋Œ€ํ•œ Atlas ์ง€์›์— ๊ด€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ช…๋ น์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

  • MongoDB Enterprise: MongoDB์˜ ๊ตฌ๋… ๊ธฐ๋ฐ˜ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

  • MongoDB Community: MongoDB์˜ ์†Œ์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฌด๋ฃŒ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

tailable cursor( tailable cursor)์™€ ํ•จ๊ป˜ isExhausted() ์„(๋ฅผ) ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. tailable cursor๋Š” ํ˜„์žฌ ๋ฐฐ์น˜์— ๋‚จ์•„ ์žˆ๋Š” ๋ฌธ์„œ๊ฐ€ ์—†๋”๋ผ๋„ ์—ด๋ฆฐ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋‚จ์•„ ์žˆ๋Š” ๋ฌธ์„œ๊ฐ€ ์—†์œผ๋ฉด ๋‹ค๋ฅธ ์ปค์„œ๊ฐ€ ์ž๋™์œผ๋กœ ๋‹ซํž™๋‹ˆ๋‹ค.

change stream ์—๋Š” isExhausted() ์„(๋ฅผ) ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‹ค์Œ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค:

change stream ์˜ˆ์‹œ๋Š” ์˜ˆ์‹œ ๋ณด๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ์„น์…˜์—๋Š” ์ปค์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์ƒ ์„ผ์„œ์˜ ์˜จ๋„ ์ธก์ •๊ฐ’์œผ๋กœ collection์—์„œ ๋ฌธ์„œ๋ฅผ ์ฝ๋Š” ์˜ˆ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. isExhausted() ์˜ ์˜ˆ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

1

์‹คํ–‰:

db.sensor.insertMany( [
{ _id: 0, temperature: 12 },
{ _id: 1, temperature: 23 }
] )
2

sensor collection์—์„œ ๋ฌธ์„œ๋ฅผ ์ฝ๋Š” sensorCursor ์ด๋ผ๋Š” ์ปค์„œ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

var sensorCursor = db.sensor.find()
3

์‹คํ–‰:

sensorCursor.count()

collection์— ๋‘ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ถœ๋ ฅ์€ 2 ์ž…๋‹ˆ๋‹ค.

4

์‹คํ–‰:

sensorCursor.next()

์ถœ๋ ฅ:

{ _id: 0, temperature: 12 }
5

์‹คํ–‰:

sensorCursor.isExhausted()

sensorCursor ์— ๋ฌธ์„œ๊ฐ€ ๋‚จ์•„ ์žˆ์œผ๋ฏ€๋กœ ์ถœ๋ ฅ์€ false ์ž…๋‹ˆ๋‹ค.

6

์‹คํ–‰:

sensorCursor.next()

์ถœ๋ ฅ:

{ _id: 1, temperature: 23 }
7

์‹คํ–‰:

sensorCursor.next()

๋” ์ด์ƒ ๋ฌธ์„œ๊ฐ€ ์—†์œผ๋ฉฐ ์ด ์˜ˆ์‹œ์—์„œ๋Š” null ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

8

์‹คํ–‰:

sensorCursor.isExhausted()

๋” ์ด์ƒ ๋ฌธ์„œ๊ฐ€ ์—†์œผ๋ฉฐ isExhausted() ์ด true ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋Œ์•„๊ฐ€๊ธฐ

cursor.hint

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ