μ μ
cursor.max()μ€μ
Mongoμ¬ λ°©λ²
μ΄λ
mongoshλ©μλμ λλ€. μ΄λNode.jsλλ κΈ°ν νλ‘κ·Έλλ° μΈμ΄λ³ λλΌμ΄λ² λ©μλμ λν μ€λͺ μκ° μλλλ€ .λλΆλΆμ κ²½μ°
mongoshλ©μλλ λ κ±°μmongoshell λ©μλμ λμΌν λ°©μμΌλ‘ μλν©λλ€. κ·Έλ¬λ μΌλΆ λ κ±°μ λ©μλλmongoshμμ μ¬μ©ν μ μμ΅λλ€.λ κ±°μ
mongoμ Έ λ¬Έμλ ν΄λΉ MongoDB μλ² λ¦΄λ¦¬μ€ λ¬Έμλ₯Ό μ°Έμ‘°νμΈμ.MongoDB API λλΌμ΄λ²μ κ²½μ° μΈμ΄λ³ MongoDB λλΌμ΄λ² λ¬Έμλ₯Ό μ°Έμ‘°νμΈμ.
find()μ κ²°κ³Όλ₯Ό μ ννκΈ° μν΄ νΉμ μΈλ±μ€μ λν λ°°νμ μνμ μ§μ ν©λλ€.max()λ λ³΅ν© ν€ μΈλ±μ€μ μνμ μ§μ νλ λ°©λ²μ μ 곡ν©λλ€.
λ§€κ°λ³μ
max() λ©μλμλ λ€μκ³Ό κ°μ λ§€κ°λ³μκ° μμ΅λλ€.
Parameter | μ ν | μ€λͺ
|
|---|---|---|
| λ¬Έμ | μΈλ±μ€ ν€μ λ°°νμ μνμ λλ€. |
indexBounds λ§€κ°λ³μμ νλ‘ν νμ
νμμ λ€μκ³Ό κ°μ΅λλ€.
{ field1: <max value>, field2: <max value2> ... fieldN:<max valueN> }
νλλ νΉμ μΈλ±μ€μ λͺ¨λ ν€μ μμλλ‘ ν΄λΉλ©λλ€.
μ°Έκ³
μΈλ±μ€ μ¬μ©νκΈ°
ν
max() λ μ£Όλ‘ mongos shell ( μ€λ©) νλ‘μΈμ€ λ₯Ό μ§μ νκΈ° μν΄ μ‘΄μ¬νλ©° 쿼리 μμ μ $maxλ₯Ό κ°μΈλ λνΌμ
λλ€.
μ°Έκ³
v3.2λΆν° μ§μμ΄ μ€λ¨λμμ΅λλ€
v3.2 λΆν° $max μ°μ°μ λ mongosh μμ λ μ΄μ μ¬μ©λμ§ μμ΅λλ€. mongosh μμλ cursor.max() μ λμ μ¬μ©ν©λλ€.
νΈνμ±
μ΄ λ©μλλ λ€μ νκ²½μμ νΈμ€ν λλ λ°°ν¬μμ μ¬μ©ν μ μμ΅λλ€.
MongoDB Atlas: ν΄λΌμ°λμμμ MongoDB λ°°ν¬λ₯Ό μν μμ κ΄λ¦¬ν μλΉμ€
μ°Έκ³
μ΄ λͺ λ Ήμ λͺ¨λ MongoDB Atlas ν΄λ¬μ€ν°μμ μ§μλ©λλ€. λͺ¨λ λͺ λ Ήμ λν Atlas μ§μμ κ΄ν΄ μμΈν μμλ³΄λ €λ©΄ μ§μλμ§ μλ λͺ λ Ήμ μ°Έμ‘°νμμμ€.
MongoDB Enterprise: MongoDBμ ꡬλ κΈ°λ° μ체 κ΄λ¦¬ λ²μ
MongoDB Community: MongoDBμ μμ€ μ¬μ© κ°λ₯ λ¬΄λ£ μ체 κ΄λ¦¬ λ²μ
νλ
μΈλ±μ€ μ νκ³Όμ μνΈ μμ©
max()λ νλμ μΈλ±μ€κ° νμνκ³ μΏΌλ¦¬κ° μ΄ μΈλ±μ€λ₯Ό μ¬μ©νλλ‘ κ°μνκΈ° λλ¬Έμ κ°λ₯νλ©΄ 쿼리μ $lt μ°μ°μλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. λ€μ μμλ₯Ό νμ©ν μ μμ΅λλ€.
db.products.find( { _id: { $in: [ 6, 7 ] } } ).max( { price: NumberDecimal("1.39") } ).hint( { price: 1 } )
μ΄ μΏΌλ¦¬λ _id μ μΈλ±μ€κ° λ λμ μ μλλΌλ price νλμ μΈλ±μ€λ₯Ό μ¬μ©ν©λλ€.
μΈλ±μ€ λ°μ΄λ
max() μ min() μ ν¨κ» μ¬μ©νμ¬ λ²μ λ₯Ό μ§μ νλ κ²½μ°:
min()λ°max()μ μ§μ λ μΈλ±μ€ λ°μ΄λλ λͺ¨λ λμΌν μΈλ±μ€μ ν€λ₯Ό μ°Έμ‘°ν΄μΌ ν©λλ€.max()μΌλ‘ μ§μ λ κ²½κ³λmin()λ‘ μ§μ λ κ²½κ³λ³΄λ€ μ»€μΌ ν©λλ€.
max() λ―Έν¬ν¨: min()
$min λ° $max μ°μ°μλ μμ€ν
μ΄ μΌλ°μ μΈ μΏΌλ¦¬ κ³νμ νΌν΄μΌ ν¨μ λνλ
λλ€. λμ $min λ° $max μ μ§μ λ κ°μΌλ‘ μΈλ±μ€ κ²½κ³κ° λͺ
μμ μΌλ‘ μ§μ λλ μΈλ±μ€ μ€μΊμ ꡬμ±ν©λλ€.
κ²½κ³
λ κ²½κ³ μ€ νλλ₯Ό μ§μ νμ§ μμΌλ©΄ 쿼리 κ³νμ ν μͺ½μ΄ μ νλμ§ μμ μΈλ±μ€ μ€μΊμ΄ λ©λλ€. μ΄λ κ² νλ©΄ μ°μ°μλ₯Ό λͺ¨λ ν¬ν¨νμ§ μλ 쿼리 λλ λ μ°μ°μλ₯Ό λͺ¨λ μ¬μ©νμ¬ μΈλ±μ€ μ€μΊμ λ³΄λ€ μ격νκ² μ ννλ 쿼리μ λΉν΄ μ±λ₯μ΄ μ νλ μ μμ΅λλ€.
μμ
μ°Έκ³
μλ μμμμλ λ€μ λ¬Έμλ₯Ό ν¬ν¨νλ products λΌλ μ΄λ¦μ μν 컬λ μ
μ λ§λλλ€.
db.products.insertMany([ { "_id" : 1, "item" : "apple", "type" : "honey crisp", "price" : NumberDecimal("1.99") }, { "_id" : 2, "item" : "apple", "type" : "fuji", "price" : NumberDecimal("1.99") }, { "_id" : 3, "item" : "apple", "type" : "jonagold", "price" : NumberDecimal("1.29") }, { "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : NumberDecimal("1.29") }, { "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : NumberDecimal("1.29") }, { "_id" : 6, "item" : "apple", "type" : "cortland", "price" : NumberDecimal("1.29") }, { "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : NumberDecimal("2.99") }, { "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : NumberDecimal("1.99") }, { "_id" : 8, "item" : "orange", "type" : "valencia", "price" : NumberDecimal("0.99") }, { "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") } ])
컬λ μ μ λ€μ μΈλ±μ€λ₯Ό λ§λλλ€.
db.products.createIndexes( [ { "item" : 1, "type" : 1 }, { "item" : 1, "type" : -1 }, { "price" : 1 } ] )
{ item: 1, type: 1 }μΈλ±μ€max()μ μμλ₯Ό μ¬μ©νμ¬itemμΈappleλ°typeμΈjonagoldμ κ²½κ³ μλμ μλ λ¬Έμλ‘ μΏΌλ¦¬ λ₯Ό μ νν©λλ€.db.products.find().max( { item: 'apple', type: 'jonagold' } ).hint( { item: 1, type: 1 } ) μ΄ μΏΌλ¦¬λ λ€μ λ¬Έμλ₯Ό λ°νν©λλ€.
{ "_id" : 6, "item" : "apple", "type" : "cortland", "price" : NumberDecimal("1.29") } { "_id" : 2, "item" : "apple", "type" : "fuji", "price" : NumberDecimal("1.99") } { "_id" : 1, "item" : "apple", "type" : "honey crisp", "price" : NumberDecimal("1.99") } μΈλ±μ€
{ price: 1 }μ μμλ₯Ό μ¬μ©νμ¬max()λNumberDecimal("1.99")κ³Ό λμΌνpriceμ μΈλ±μ€ ν€ κ²½κ³ μλμ μλ λ¬Έμλ‘ μΏΌλ¦¬λ₯Ό μ ννκ³min())μNumberDecimal("1.39")κ³Ό λμΌνpriceμ μΈλ±μ€ ν€ κ²½κ³ μμ μκ±°λ μμ μλ λ¬Έμλ‘ μΏΌλ¦¬λ₯Ό μ νν©λλ€.db.products.find().min( { price: NumberDecimal("1.39") } ).max( { price: NumberDecimal("1.99") } ).hint( { price: 1 } ) μ΄ μΏΌλ¦¬λ λ€μ λ¬Έμλ₯Ό λ°νν©λλ€.
{ "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }