我可能不太了解哈希/主键在 DynamoDB 中的工作原理,但我正在尝试为消息传递服务创建一个模型(使用无服务器 + Dynogels/NodeJS)。
该模型如下所示:
const ConversationORM = dynogels.define('Conversation', {
hashKey: 'id',
timestamps: true,
tableName: config.CONVERSATION_TABLE,
schema: {
id: Joi.string(),
users: Joi.array(), // e.g. ['foo', 'bar', 'moo']
messages: Joi.array()
}
})
如您所见,users
是一个数组,其中列出了对话参与者的用户 ID。
我需要创建一个服务来查找用户参与的所有对话。在 MongoDB(我更熟悉)中,我会做类似的事情:
Conversation.find({users: {"$in": ['foo']} }).then(....
我可以在 DynamoDB 中做一些等效的事情吗?这是一个经常发生的 API 调用,所以我希望它尽可能高效。