AWS DynamoDB和AWS DynamoDB.DocumentClient是AWS SDK中用于与DynamoDB数据库进行交互的两个不同的类。下面是一些关于何时使用哪个的指导原则以及一些示例代码。
使用AWS DynamoDB类:
示例代码:
const AWS = require('aws-sdk');
// 创建DynamoDB客户端
const dynamodb = new AWS.DynamoDB();
// 创建一个DynamoDB表
const params = {
TableName: 'my-table',
KeySchema: [
{ AttributeName: 'id', KeyType: 'HASH' } // 主键
],
AttributeDefinitions: [
{ AttributeName: 'id', AttributeType: 'N' } // 属性定义
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
};
dynamodb.createTable(params, (err, data) => {
if (err) {
console.error('创建表出错:', err);
} else {
console.log('表创建成功:', data);
}
});
使用AWS DynamoDB.DocumentClient类:
示例代码:
const AWS = require('aws-sdk');
// 创建DynamoDB.DocumentClient客户端
const documentClient = new AWS.DynamoDB.DocumentClient();
// 插入一条数据
const params = {
TableName: 'my-table',
Item: {
id: 1,
name: 'John Doe',
age: 30
}
};
documentClient.put(params, (err, data) => {
if (err) {
console.error('插入数据出错:', err);
} else {
console.log('数据插入成功:', data);
}
});
// 查询数据
const queryParams = {
TableName: 'my-table',
KeyConditionExpression: 'id = :id',
ExpressionAttributeValues: {
':id': 1
}
};
documentClient.query(queryParams, (err, data) => {
if (err) {
console.error('查询数据出错:', err);
} else {
console.log('查询结果:', data.Items);
}
});
总结:使用AWS DynamoDB类可以获得更高级别的控制和灵活性,而使用AWS DynamoDB.DocumentClient类可以提供更简洁和易于使用的高级别API接口。选择哪个取决于您的需求和偏好。