// find and delete
$model->find(<id>);
$model->delete();
// Using getIterator(). If 'key' is the primary key or a global/local index and the condition is EQ, will use 'Query', otherwise 'Scan'.
$model->where('key', 'key value')->get();
$model->where(['key' => 'key value']);
// Chainable for 'AND'. 'OR' is not supported.
$model->where('foo', 'bar')
->where('foo2', '!=' 'bar2')
->get();
// Using scan operator, not too reliable since DynamoDb will only give 1MB total of data.
$model->all();
// Basically a scan but with limit of 1 item.
$model->first();
// update
$model->update($attributes);
$model = new Model();
// Define fillable attributes in your Model class.
$model->fillableAttr1 = 'foo';
$model->fillableAttr2 = 'foo';
// DynamoDb doesn't support incremented Id, so you need to use UUID for the primary key.
$model->id = 'de305d54-75b4-431b-adb2-eb6b9e546014'
$model->save();
// chunk
$model->chunk(10, function ($records) {
foreach ($records as $record) {
}
});
// Additional
// Where in
$model->where('id', 'in', [])
// Sub query
$model->where(function($q) {
$q->where('id', 1)
->where('name', 'contains', 'a');
})->orWhere('email', 'contains', 'abc'));
// Delete all
$model->where('id', 'in', [1,2,3])->deleteAll();
// Increment/ Decrement a column
$model->increment('view_count', 1);
$model->decrement('total_product', 1);
// Paginate
$model->paginate([], $limit, $lastEvaluatedKey);