1

我在 mongoose 中查询时遇到问题,我正在寻找您的建议:

如果元素在数组中,我需要从集合中检索一些元素。很难解释,这是交易:如果当前用户在收件人中,我需要获取消息

var Message = new Schema({
    recipients: [{
        pseudo: {type: String},
        slug: {type: String, index: true}
    }],
    sender: {
        pseudo: {type: String},
        slug: {type: String, index: true}
    },
    content: String,
    dateCreated: {type: Date, default: Date.now},
    readBy: [{
        pseudo: String,
        slug: String,
        date: Date
    }]
});

同样,在检查未读消息时,如果我的用户不在 readBy 数组中,我需要检索一些消息。

我知道如何使用 $in 运算符,但它的工作方式相反。是否有可能实现这种查询?

编辑:我发现了 $elemMatch 运算符,它可以很好地处理我的第一个问题,但我不确定如何将它用于未读消息。是否可以在其中添加 NOT 子句?

4

0 回答 0