我正在开发基于mongodb和mongoose的应用。我的一个模式具有以下形式:
var schema = new mongoose.Schema(
{
name: { type: String },
timestamp: { type: Number, default: Date.now },
// further properties
});
schema.index({ name: 1, timestamp: -1 });
我想检索一组timestamp
字符串的最新对象(即最大name
)。
例如,考虑一组名称['a','b']
。如何查询数据库,以便返回包含两者的对象集合,id=='a'
的最新条目和id=='b'
的最新条目?
[更新:我们的想法是避免多次查询数据库(即每个名称一次)。]
答案 0 :(得分:0)
"我如何查询数据库,以便返回包含最新内容的对象集合,其中id ==' a'""
db.collection.find({ name : 'a' }).sort({ timestamp : -1 })
"以及id ==' b'?"
的最新条目 db.collection.find({ name : 'b' }).sort({ timestamp : -1 }).limit(1)