I'm developing an IM system, I use MongoDB shard to store the history messages. The query demand is only based on the sessions of two users.
The shard key is:
sh.shardCollection("message.message", {"sessionId": "hashed", "msgId": 1})
sessionId
field is uin1-uin2
(concatenation of two user's uin
), msgId
field is monotonically increasing. The objective is both user's messages should be located only on one shard, so we can load the session's history messages efficiently.
Is it a good shard key to acheive the objective?
thank you.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…