pk | sk | order | jsonObj |
---|---|---|---|
0 | 4#10#7 | port | {} |
0 | 5#2#1 | x | {} |
1 | 1#1#0 | z | {} |
0 | 4#10#9 | firewall | {} |
2 | 5#1#2 | y | {} |
// Query
const params = {
TableName: "test-t",
KeyConditionExpression: "pk = :pk AND begins_with(sk, :sk)",
ExpressionAttributeValues: {
":pk": "0",
":sk": "4#10",
},
};
return await db.query(params).promise();
// Output
{ Items:
[ { sk: '4#10#7', order: 'port', pk: '0', jsonObj: [Object] },
{ sk: '4#10#9', order: 'firewall', pk: '0', jsonObj: [Object] } ],
Count: 2,
ScannedCount: 2 }
pk | sk | category |
---|---|---|
0 | 4#10#7 | [{ "S" : "Tuna" }, { "S" : "Pizza" }, { "S" : "Ball" }] |
0 | 5#2#1 | [{ "S" : "Mouse" }, { "S" : "Hat" }] |
0 | 1#1#0 | [{ "S" : "Hat" }, { "S" : "Cheese" }] |
// Query
const params = {
TableName: "test-t",
KeyConditionExpression: "pk = :pk",
FilterExpression: "contains(category, :cat1) or contains(category, :cat2)",
ExpressionAttributeValues: {
":pk" : "0",
":cat1": "Mouse",
":cat2": "Ball",
}
};
return await db.query(params).promise();
// Output
{ Items:
[ { category: [Array], pk: '0', sk: '4#10#7' },
{ category: [Array], pk: '0', sk: '5#2#1' }],
Count: 2,
ScannedCount: 3 }
pk | sk | order | jsonObj |
---|---|---|---|
0 | 4#10#7 | port | {} |
0 | 5#2#1 | x | {} |
1 | 1#1#0 | z | {} |
0 | 4#10#9 | firewall | {} |
2 | 5#1#2 | y | {} |
// Put Operation
const params = {
TableName: this.tableName,
Item: {
pk: "0"
sk: "4#10#3",
order: "k",
jsonObj: {} // Can be a standard js object
}
};
await this.db.put(params).promise();
// Output
// ...
- up to 16 MB of data
- 25 put or delete requests
- items to be written can be as large as 400 KB
pk | sk | order | jsonObj |
---|---|---|---|
0 | 4#10#7 | port | {} |
0 | 5#2#1 | x | {} |
1 | 1#1#0 | z | {} |
0 | 4#10#9 | firewall | {} |
2 | 5#1#2 | y | {} |
// BatchWriteItem Operation
const objects = [
{
"pk" : "0",
"sk" : "5#2#1",
},
{
"pk" : "0",
"sk" : "4#10#7",
}
]
const params = {
RequestItems: {} as any
};
// Add Delete Requests on this.tableName
params.RequestItems[this.tableName] = objects.map(obj => ({
DeleteRequest: {
Key: {
"pk": obj.pk,
"sk": obj.sk
}
}
}));
await this.db.batchWrite(params).promise();
// Output
// ...