我有一个架构
var chatSchema = mongoose.Schema({
sender:String,
to:String,
msg:String,
msgType: Number,
created: {type: Date, default: Date.now}
});
和模型
var Chat = mongoose.model('Message', chatSchema);
除此之外,我还有一系列ID /名称
var idArray = [1,2,3,4,5];
我想进行查询,从idArray
获取每个发件人的最后一个文档var query = Chat.find(
{from: { $in: friendsOnline }},
{created: { $last: "$created" }}
});
query.exec(function (err,result){
if(err){ console.log("Query error.");}
else{
if(result!=null) {console.log(JSON.stringify(result));}
else{console.log('No results.');}
}
});
像这样的东西,但这显然不起作用
答案 0 :(得分:2)
对于来自idArray的每个发件人,您需要按发件人查找,限制为1个文档,并按创建时间排序:
var query = Chat.find({
sender: idArray[0]
}).
limit(1).
sort( { created: -1 } ).
exec(yourCallback)