我试图在使用MongoDB和下面的架构的两个用户之间存储对话。猫鼬架构:*在上一个对象
`var messageSchema = new Schema({
users: [
{
type: Schema.Types.ObjectId,
ref: 'User',
required: true
},
{
type: Schema.Types.ObjectId,
ref: 'User',
required: true
}],
user_msgs: [
{
is_sender: {}, //A user in users
msg_body: String,
created: {
type: Date,
default: Date.now
}
}
]
});`
有没有一种方法来定义is_sender,以便它只能是来自用户的用户?
一个conversationSchema就是这个计划,你正确地得到了一切。使用像你写的那样的模式是最初的计划,但我不知道如何做查询来显示像Facebook聊天结果。 – 2014-08-27 18:10:28
你想如何显示它?获取两个特定用户之间的聊天记录?只需在查询中指定它们即可获得所有结果。您也可以对创建的时间使用限制。 – wdberkeley 2014-08-27 18:12:01
例如: 'user1 ---> user2:你好 user2 ---> user1:嗨! user2 ---> user1:你好吗? USER1 --->用户2:太好了' 现在,我可以做db.messages.find({发件人:用户1} $其中:{收件人:用户2}),那会只显示: 'USER1 ---> user2:你好 user1 ---> user2:好极了!' 我该如何做查询,以便我可以显示消息,它最初的发送方式。 – 2014-08-27 18:23:24