我有一个mongoDb集合用于users,一个集合用于messages。我的目标是返回用户的结果
patient
role (过滤掉没有消息的用户)
我对聚合相当陌生,但尝试使用聚合来解决这个问题。到目前为止,我的查询通过查找返回带有消息的用户,但是,它不会过滤没有消息(2)的用户,也不会对结果(3)进行排序。
db.users.aggregate([
{$match: {role: "patient"}},
{$lookup:
{
from: "messages",
localField: "phoneNumber",
foreignField: "phoneNumber",
as: "messages"
}
}
])发布于 2021-06-08 04:47:54
虽然您可以通过聚合管道实现这一点,但更有效的解决方案是将最新消息的时间戳写入用户,此时不需要连接来检索所需的数据。
https://stackoverflow.com/questions/67880852
复制相似问题