Node.js 通过在mongoose中填充匹配结果查找文档

Node.js 通过在mongoose中填充匹配结果查找文档,node.js,mongodb,express,mongoose,mongoose-populate,Node.js,Mongodb,Express,Mongoose,Mongoose Populate,例如,根据猫鼬的数据: 数据学生: [{ "_id": ObjectId("5afbb519a7fe344ff8db67e6"), "name":"Jack", "age":20 ... },{ "_id": ObjectId("5afbb534a7fe344gf7db64e7"), "name":"Joni", "age":20 ... }] [{ "_id": ObjectId("5afbb554a7fe344ff8db67e9"), "name":

例如,根据猫鼬的数据:

数据学生

[{
  "_id": ObjectId("5afbb519a7fe344ff8db67e6"),
  "name":"Jack",
  "age":20
  ...
},{
  "_id": ObjectId("5afbb534a7fe344gf7db64e7"),
  "name":"Joni",
  "age":20
  ...
}]
[{
  "_id": ObjectId("5afbb554a7fe344ff8db67e9"),
  "name":"Going to Market",
  "student": ObjectId("5afbb519a7fe344ff8db67e6")
  ...
},{
  "_id": ObjectId("5afbb784a7fe344gf7db64e2"),
  "name":"Playing with Friends",
  "student":ObjectId("5afbb534a7fe344gf7db64e7")
  ...
}]
数据活动

[{
  "_id": ObjectId("5afbb519a7fe344ff8db67e6"),
  "name":"Jack",
  "age":20
  ...
},{
  "_id": ObjectId("5afbb534a7fe344gf7db64e7"),
  "name":"Joni",
  "age":20
  ...
}]
[{
  "_id": ObjectId("5afbb554a7fe344ff8db67e9"),
  "name":"Going to Market",
  "student": ObjectId("5afbb519a7fe344ff8db67e6")
  ...
},{
  "_id": ObjectId("5afbb784a7fe344gf7db64e2"),
  "name":"Playing with Friends",
  "student":ObjectId("5afbb534a7fe344gf7db64e7")
  ...
}]
我想在populatewithregex中找到一个关于条件的数据库&我就是这么做的:

let term = new Regex('Jack','i');        
let result = await Activities.find({})
            .populate('student', null, { name: { $regex: term } })
            .exec();
但结果总是返回活动的所有数据(regex查询不起作用)


我该怎么办?

您应该尝试使用
match

let result = await Activities.find({})
            .populate({ path: 'student', match: { name: { $regex: term } } })
            .exec();