【发布时间】:2019-07-03 04:45:56
【问题描述】:
我正在创建一个消息传递应用程序,我需要能够显示与给定用户有对话历史记录的用户。 我有用户和对话。型号如下。 (有一个消息集合,其中每个文档都引用一个对话)
//This is the conversation model.
const mongoose = require('mongoose');
const ConversationSchema = new mongoose.Schema({
participants: {
type: Array,
required: true
}
});
const Conversation = mongoose.model('Conversation', ConversationSchema);
//This is the users model (there's more to it, but this is the relevant stuff)
module.exports = Conversation;
const UserSchema = new mongoose.Schema({
firstName: {
type: String,
required: true
},
lastName: {
type: String,
required: true
}
});
const User = mongoose.model('User', UserSchema);
module.exports = User;
每个都有一个生成的_id。 我正在发送一个带有用户 ID 的 http 请求。 在我的控制器中,使用猫鼬,我可以执行以下操作:
Conversation.find({participants:req.params.user_id})
这将返回一个对话对象数组,每个对象都包含一个参与者数组(一个用户 ID 数组)。 然后我需要做的是将所有参与者与“用户”集合匹配,这样我就可以获得每个用户的用户 ID、名字和姓氏。
总之,我需要发送一个带有用户 ID 作为参数的 HTTP 请求,并接收一组用户,这些用户与提供的用户有对话历史记录。
下一步是什么?如何将我从相关对话中获得的用户 ID 与用户集合中的用户 ID 匹配?
【问题讨论】: