猫鼬如何找到与众不同?

时间:2017-07-22 00:35:36

标签: node.js mongodb mongoose

我想选择自上次访问用户以来最新消息的用户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);
    });
};

1 个答案:

答案 0 :(得分:0)

经过几个小时的测试后,我发现了问题。 data.laston的值不正确,因此查询效果不佳。