我想选择自上次访问用户以来最新消息的用户ID,但它们必须是唯一的。例如,如果用户3和7发出了5条最新消息,则它必须返回一个包含这2个ID的数组。
我尝试使用Mongoose distinct选择它们但它返回一个空数组。这是我当前的代码,参数data是一个对象,其中uid = user id,laston =上次上线时的日期。
var mongoose = require('mongoose');
var chatSchema = mongoose.Schema({
uid: String,
uidto: String,
msg: String,
created: Date
});
var Chat = mongoose.model('Message', chatSchema);
exports.getNewMsgs = function (data, cb) {
Chat.distinct('uid', {$and: [{uidto: data.uid}, {created: {$gt: data.laston}}]}).exec(function (err, docs) {
cb(err, docs);
});
};
答案 0 :(得分:0)
经过几个小时的测试后,我发现了问题。 data.laston的值不正确,因此查询效果不佳。