我正在使用Nestjs(Node)和MongoDB(mongoose)构建一个客户服务聊天应用程序后端,用于管理用户及其与聊天机器人的聊天,以便在前端和聊天机器人服务器之间作为中间件进行聊天。
我的数据库中有这些集合
Users : {
_id : Objectid,
firstName : String,
lastName : String,
gender : String,
email : String,
password : String
}
Conversations : {
_id : Objectid,
userId : Objectid, (Ref : Users)
category : String
}
Messages : {
_id : Objectid,
conversationId : Objectid, (Ref : Conversations)
userId : Objectid, (Ref : Users)
type : Number (0-bot,1-user)
ratings : {
happy:Number,(1-5)
angry:Number,(1-5)
satisfied:Number,(1-5)
...
},
averageRating: Number (average of all ratings)
}
当用户与chatbot聊天时,我将双方(聊天服务器和用户)的消息都使用type和sessionId保存在我的Messages集合中。 为了分析使用chatbot的用户体验,管理员添加了一项功能,可使用给定参数为该消息添加评级,这意味着admin将对用户对所有消息的行为和情感进行评级。 我创建了一个单独的API,管理员可以在其中给具有给定参数的邮件添加评级,并且该消息将使用这些评级进行更新,并为该消息生成平均评级。
这就是我的应用程序的工作方式。现在,当管理员获取对话列表时,我需要添加两个过滤器
在两种情况下,评分都在邮件收集中,但我需要过滤对话。
我该如何实现?