2015-02-23 30 views
0

我正在研究基于mongodbmongoose的应用程序。我的一个模式有以下形式:获取每个子集的最新对象

var schema = new mongoose.Schema(
{ 
    name: { type: String }, 
    timestamp: { type: Number, default: Date.now }, 
    // further properties 
}); 
schema.index({ name: 1, timestamp: -1 }); 

我想检索最新的对象(即最大timestamp)一组name -strings。

例如,考虑一组名称['a','b']。如何查询数据库,以便返回包含两个对象的集合,最新条目id=='a'以及最新条目​​?

[更新:这样做是为了避免到数据库中多次查询(即每次一个名称)。]

回答

0

“我如何查询数据库,这样我得到返回的对象的集合包含最新其中id == '一'”

db.collection.find({ name : 'a' }).sort({ timestamp : -1 })

“和最新的条目,其中ID == 'b'?”

db.collection.find({ name : 'b' }).sort({ timestamp : -1 }).limit(1)