我试图用猫鼬填充两个单独的查询。查询是:
const mentioned = await Mentions.find({ client: userID }).lean()
const users = await Client.find({ username: usernameRegex })
“提及”架构如下所示:
const mentionSchema = new Schema({
client: { type: Schema.Types.ObjectId, ref: 'Client' },
mention: { type: Schema.Types.ObjectId, ref: 'Client' },
count: { type: Number, default: 0 }
})
我的目标是在第二个查询中找到与用户名regex匹配的用户列表,然后按照userID
提及他们的次数进行排序(如果从未提及,则应该为0)。
我该怎么做?
我假设它看起来像这样:
const results = await Client.aggregate([
{ $match: {
username: { $regex: mentionRegex }
} },
{ $lookup: {
from: 'mention',
localField: '_id',
foreignField: 'mention',
as: 'mention'
} }
])
但这不会对提及集合执行查询,仅查找属于userID
的条目