I'm trying to figure out the best design for the messaging system I'm porting from SQL Server to MongoDB - currently (in SQL Server) there are tree tables that store the message: Messages, Inbox and Sent. The message is stored in Messages table, and Inbox/Sent have entries for all recipients/senders for each message.
Now, in MongoDB I wanted to combine those three into one collection, with documents like this:
{
_id:
subject:
body:
sender: {memid开发者_运维百科:, name:}
recip: [{memid:, name:}, {memid:, name:}, {memid:, name:}, etc]
}
Now, I need to be able to retrieve all messages for a given recipient by memid and I have to do it fast, so an index is required (I will have hundreds of millions of such entries). So, my question is - can I index by a field of a document in an array?
see here https://docs.mongodb.com/manual/indexes/#multikey-index
Index by a field of a document in an array is supported by mongodb.
Example:
{ addr.zip: 1 }
精彩评论