scan
Introduction
scan
method performs scan request using aws-sdk ScanCommand.
Items
in ScanCommandOutput is fully typed based on your Schema declaration.
execute
scan
takes 2 optionnal arguments:
const res = await User.scan(
{
age: {
$gt: 22
}
},
{ ReturnConsumedCapacity: "TOTAL" }
);
res.Items[0].firstname;
options
options
is an object which accepts ScanCommandInput
options and DynamoQL specific options.
exec
exec
boolean directive to execute or not the actual request.
When false
scan will return ScanCommandInput
object.
import type { ScanCommandInput } from "@aws-sdk/client-dynamodb";
const cmd: ScanCommandInput = await User.scan(
{
age: {
$gt: 22
}
},
{ exec: false }
);
Select
Select
accepts an array of attributes which produces a ProjectionExpression
, or "ALL"
| "COUNT"
.
const res = await User.scan(
{
age: {
$gt: 22
}
},
{ Select: ["id", "isActive"] }
);
note
Select
affects ScanCommandOutput type.
const { Items } = await User.scan(
{
age: {
$gt: 22
}
},
{ Select: ["id", "isActive"] }
);
Items[0].firstname; // Property 'firstname' does not exist on type { id: string; isActive?:boolean } ...
const res = await User.scan(
{
age: {
$gt: 22
}
},
{ Select: "COUNT" }
);
res.Items; // Property 'Items' does not exist on type ScanCommandOutput
getterInfo
getterInfo
allows you to pass any value to your Schema get function's third argument.
const res = await User.scan(
{
age: {
$gt: 22
}
},
{ getterInfo: { forFrontend: true } }
);