我想为我的cases和users的mongo集合创建一个控制器。我希望筛选具有不与cases集合中的user关联的userName支柱的Users。我想用有问题的res(有问题的caseDocs )向客户端发送usersNames池。
下面是我一直在用的东西:
const noUserFuncController = async (res, res) => {
const cases = await CaseFile.find({})
const noUsersarr = []
cases.forEach(async caseDoc => {
const usr = await Users.findOne({ userName: caseDoc.user })
if (!usr) {
noUsers.push(caseDoc)
}
})
res.json(noUsersarr)
}如有任何意见,我们将不胜感激。
谢谢。
发布于 2022-01-12 08:39:19
您可以尝试使用$lookup阶段的聚合查询来连接用户信息,如果用户响应为空[],则使用$match阶段进行匹配。
const noUserFuncController = async (res, res) => {
const noUsersarr = await CaseFile.aggregate([
{
$lookup: {
from: "users", // confirm your collection name here
localField: "user",
foreignField: "userName",
as: "user"
}
},
{ $match: { user: [] } }
]);
res.json(noUsersarr);
}https://stackoverflow.com/questions/70678008
复制相似问题