如何在mongoDB中进行查询以从两个具有计数布尔值的集合中获取结果
我是mongodb的新手,正在开发聊天应用程序 从两个集合中,我希望结果字段名如下 \u id, 用户名, fname,lname, 等值线, 更新日期,计数。 _id、username、fname、lname、isOnline和updatedAt属于users集合和count,我必须根据以下内容获取:\u id(发送者id)和活动用户(当用户联机时,我从函数传递,其接收者id)的isRead=false 用户集合字段为, 聊天收集字段为, 在这里,用户devanggarach处于联机状态,我想获得具有未读邮件计数的用户列表(isRead=false)如何在mongoDB中进行查询以从两个具有计数布尔值的集合中获取结果,mongodb,mongodb-query,Mongodb,Mongodb Query,我是mongodb的新手,正在开发聊天应用程序 从两个集合中,我希望结果字段名如下 \u id, 用户名, fname,lname, 等值线, 更新日期,计数。 _id、username、fname、lname、isOnline和updatedAt属于users集合和count,我必须根据以下内容获取:\u id(发送者id)和活动用户(当用户联机时,我从函数传递,其接收者id)的isRead=false 用户集合字段为, 聊天收集字段为, 在这里,用户devanggarach处于联机状态,
在mongodb docCheck中查找聚合和查找。
db.users.aggregate(
[
{
$lookup:{
from:"chats",
localField : "_id",
foreignField : "receiverId",
as : "data"
}
},
{
$unwind:"$data"
},
{
$match:{
"data.isRead":false,
_id:{
$ne:ObjectId("ID")
}
}
},
{
$group:{
_id:"$_id",
username:{$first:"$username"},
fname:{$first:"$fname"},
lname:{$first:"$lname"},
isOnline:{$first:"$isOnline"},
updatedAt:{$first:"$updatedAt"},
unRead:{$sum:1}
}
},
{
$project:{
_id:1, username:1, fname:1, lname:1, isOnline:1, updatedAt:1, unRead:1
}
}
]
).pretty()