2012-05-13 95 views
8

如何在貓鼬查詢中獲得最大值。在SQL很容易在貓鼬中獲得最大值

SELECT MAX(LAST_MOD) FROM table1 
Where field1=1 

我想在貓鼬的上面的SQL代碼當量(node.js的)

回答

6

的MongoDB支持最大/最小,但他們不建議在實際應用中使用它:

min和max的存在主要是爲了支持mongos(sharding)過程。

http://www.mongodb.org/display/DOCS/min+and+max+Query+Specifiers

你可以幾乎具有相同的結果:

Model.findOne({ field1 : 1 }).sort(last_mod, 1).run(function(err, doc) { 
    var max = doc.last_mod; 
}); 
+5

我想你會想'排序(last_mod,-1)',而不是獲取最大;上面的升序會給最小值。 – JohnnyHK

+1

'run()'方法在mongoose 4.0.2和這個'sort()'中已被棄用。我已經提交了一個修改。 –

9

我不能讓其他答案工作。也許我正在使用更新版本的Mongoose([email protected])。

這爲我工作:

Table1.findOne() 
    .where({field1: 1}) 
    .sort('-LAST_MOD') 
    .exec(function(err, doc) 
    { 
     var max = doc.LAST_MOD; 
     // ... 
    } 
);