mongoose / mongodb查询从javascript数组

时间:2015-12-06 13:30:14

标签: javascript mongodb mongoose

我有一个架构

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.');}
        }
});

像这样的东西,但这显然不起作用

1 个答案:

答案 0 :(得分:2)

对于来自idArray的每个发件人,您需要按发件人查找,限制为1个文档,并按创建时间排序:

var query = Chat.find({ 
    sender: idArray[0]
}).
limit(1).
sort( { created: -1 } ).
exec(yourCallback)