Node.js 在DynamoDB中,我们如何不使用primary(而使用其他字段)来获取操作?

Node.js 在DynamoDB中,我们如何不使用primary(而使用其他字段)来获取操作?,node.js,amazon-dynamodb,Node.js,Amazon Dynamodb,}) 上面是我们在mongoDB中执行find by requester_manager_id的代码片段,如果我们想在DynamoDB中执行相同的操作,其中as requester_manager_id不是主键,我们如何才能做到这一点?如果列不是表的主键,它可以是表中定义的列的主键。然后,可以使用哈希主键上的筛选器查询索引 如果您不能/不想定义全局二级索引,那么另一种方法(不推荐)是使用此字段上的筛选器扫描表 即使使用全局次索引,它也要求我们提供基表的主键以及在创建全局次索引时创建的主键。GSI

})


上面是我们在mongoDB中执行find by requester_manager_id的代码片段,如果我们想在DynamoDB中执行相同的操作,其中as requester_manager_id不是主键,我们如何才能做到这一点?

如果列不是表的主键,它可以是表中定义的列的主键。然后,可以使用哈希主键上的筛选器查询索引


如果您不能/不想定义全局二级索引,那么另一种方法(不推荐)是使用此字段上的筛选器扫描表

即使使用全局次索引,它也要求我们提供基表的主键以及在创建全局次索引时创建的主键。GSI的哈希主键不必与表的哈希主键相同。它也不必承载独特的价值。但是您可以使用表的哈希键作为GSI中的哈希键。
exports.findManager = function (req, res) {
// Find all registration details of a user
Registrations.
    find({ requester_manager_id: req.params.managerId }).

    exec(function (err, registrationdetails) {
        if (err) {
            logger.error("Error while retrieving registration details: " + err)
            res.status(500).send({ message: "Some error occurred while retrieving registration." });
        } else {
            logger.info("Successfully retrieved the registration details." + registrationdetails)
            res.send(registrationdetails);
        }
    });