mongodb Mongoose 过滤器通过填充

tjjdgumg  于 2023-05-28  发布在  Go
关注(0)|答案(1)|浏览(119)

我想按相关架构筛选数据
这是我当前的代码

const questions = await UserQuestionSet.find({username:req.user},{ username: 1, totalScore:1,complete:1 })
.populate({
  path: 'finalQuestionSet',
  //match: { active:true },
   select: 'title fromDate toDate allowBack active showResults'
}).lean()

但是如果finalQuestionSet.active为true,我想得到所有的问题
我该怎么做?
谢谢!

pcww981p

pcww981p1#

要根据填充的finalQuestionSet上的条件过滤UserQuestionSet,可以使用Mongoose populate()和find()方法以及查询条件:
简单使用filter()函数。

const questions = await UserQuestionSet.find({username:req.user},{ 
 username: 1, totalScore:1,complete:1 })
.populate({
   path: 'finalQuestionSet',
   select: 'title fromDate toDate allowBack active showResults'
 }).lean();
 // add below line
 questions.filter((q) => q?.active !== null)

我相信这会对你有帮助

相关问题