如何填充两个单独的查询

时间:2019-03-07 17:00:37

标签: node.js mongodb mongoose mongodb-query aggregation-framework

我试图用猫鼬填充两个单独的查询。查询是:

 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的条目

0 个答案:

没有答案