【发布时间】:2016-06-07 21:24:15
【问题描述】:
我的应用中有消息传递平台,我将每条消息保存为以下格式
{
userIds: [ 'user1Id', 'user2Id' ],
msg: "message",
sentBy: 'user1',
sentAt: new Date()
}
{
userIds: [ 'user1Id', 'user3Id' ],
msg: "message",
sentBy: 'user1',
sentAt: new Date()
}
{
userIds: [ 'user1Id', 'user2Id' ],
msg: "message",
sentBy: 'user1',
sentAt: new Date()
}
有什么方法可以从集合中获得独特的对话?
例如我想从上面的列表中得到
{
userIds: [ 'user1Id', 'user2Id' ],
msg: "message",
sentBy: 'user1',
sentAt: new Date()
}
{
userIds: [ 'user1Id', 'user3Id' ],
msg: "message",
sentBy: 'user1',
sentAt: new Date()
}
这两条记录,
这里的 mongo 查询可以是什么?
除了查询所有记录并手动进行唯一性之外,还有其他方法吗?
或者任何人建议更好的架构,我刚开始使用此功能,所以我可以更改架构。
我考虑使用like
{
userIds: [ 'user1Id', 'user2Id' ],
msgs: [
{
msg: "message",
sentBy: 'user1',
sentAt: new Date()
},
{
msg: "message",
sentBy: 'user2',
sentAt: new Date()
}
],
modifiedAt: new Date()
}
但决定反对它,因为每当有新的 msg 添加到 msgs 数组时,整个字段都会发送到客户端,因此使用第一个模式。
任何建议appreaciated。谢谢。
【问题讨论】: