我正试图为我从SQL Server移植到MongoDB的消息传递系统找到最佳设计——目前(在SQL Server中)有树表存储消息:messages、inbox和sent。邮件存储在“邮件”表中,并且“收件箱/已发送邮件”中包含每个邮件的所有收件人/发件人的条目。
现在,在MongoDB中,我想将这三个集合合并为一个集合,文档如下:
{
_id:
subject:
body:
sender: {memid:, name:}
recip: [{memid:, name:}, {memid:, name:}, {memid:, name:}, etc]
}
现在,我需要能够通过memid检索给定收件人的所有邮件,我必须快速完成,因此需要一个索引(我将拥有数亿个这样的条目)。所以,我的问题是-我可以通过数组中文档的字段进行索引吗?
最佳答案
见这里https://docs.mongodb.com/manual/indexes/#multikey-index
MongoDB支持按数组中文档的字段进行索引。
例子:
{ addr.zip: 1 }