MongoDB的聚集我有2个类别:为不同的值
用户
{
_id: 'user_id1',
username: 'user1',
}
{
_id: 'user_id2',
username: 'user2',
}
{
_id: 'user_id3',
username: 'user3',
}
收件箱
{
_id: 'inbox_id1',
from: {_id: 'user_id1', username: 'user1'},
to: {_id: 'user_id2', username: 'user2'},
text: 'Hello there',
timestamp: new Date(),
}
{
_id: 'inbox_id2',
from: {_id: 'user_id1', username: 'user1'},
to: {_id: 'user_id2', username: 'user2'},
text: 'Trying again...',
timestamp: new Date(),
}
{
_id: 'inbox_id3',
from: {_id: 'user_id3', username: 'user3'},
to: {_id: 'user_id2', username: 'user2'},
text: 'You there?',
timestamp: new Date(),
}
每当用户进入他的收件箱,我想向他展示线程列表,其中应该包含一个lat列表est来自每个用户的消息。所以基本上我想获得截然不同的文档(基于from._id
字段),并且只有最新的文档(基于timestamp
字段)。
所以我的结果user2
应该只包括2个文件(inbox_id2
和inbox_id3
)。
我知道我需要为它使用聚合,但不知道具体如何。
什么是你的MongoDB服务器的版本? – styvane
最新的 - 3.2 –