Comments (6)
You can only do simple put / delete operation in a batch on the primary key.
The OneTable remove ... many: true does a query under the hood to identify the items to remove. So that cannot be done in a batch.
You can do the query yourself, then put each simple remove into the batch. Of course, there is a limit of 25 ops per batch.
It would be great if DDB could provide a higher performance way to delete items. ;-)
from dynamodb-onetable.
The OneTable remove ... many: true does a query under the hood to identify the items to remove. So that cannot be done in a batch.
- what is the reason you query first and then delete?
You can do the query yourself, then put each simple remove into the batch. Of course, there is a limit of 25 ops per batch.
- do you mean build a batch with commands based on Expression and then call Table.batchWrite ?
from dynamodb-onetable.
You don't need to. You can just delete using the primary key.
But say you want to delete many items based on a query? i.e. a filter expression. OneTable supports doing a remove() with a filter expression via params.where. This does a query first, then removes the matching items. The many:true
is a safety to make sure you really want to do this.
Regarding (2). Not necessarily.
Basically, if you know the primary key, just do a remove with batch. Job done.
If you don't know the primary key, then you need to do a query first to determine those keys. Then you can batch delete.
from dynamodb-onetable.
Basically, if you know the primary key, just do a remove with batch. Job done.
this is what I am trying to do with the code above, I call logByEventType.remove()
my keys for that model are:
pk: { type: String, value: '${slug}#log-event-type#${type}' },
sk: { type: String, value: 'log#${logId}#${id}' },
but I need to delete specific records based on pk and sk
from dynamodb-onetable.
So you do:
await this.logByEventType.remove({slug, logId, id}, {batch})
then run the batch. The type is supplied by OneTable.
i.e. you provide all the components of the PK/SK.
from dynamodb-onetable.
ok I just realized my problem, my sort key has an additional {id} component and I was expecting to delete where sk: begins_with but that is only supported for query
thanks for your help
from dynamodb-onetable.
Related Issues (20)
- params.fields are not respected when using table.getItem() or table.queryItems()
- Metrics.d.ts should not include function interfaces declared as 'async' HOT 7
- Improve: Prohibit the removal of nested object required fields. HOT 1
- Feature: Across entities query HOT 3
- Empty strings are filtered out HOT 2
- Cannot resolve type when ESM HOT 3
- Compound global index not updated if only 1 of 2 properties passed to the update function HOT 1
- Updating unique template field does not remove unique record HOT 2
- "CredentialsProviderError: The SSO session associated with this profile has expired" in "overview" sample... HOT 2
- Create method does not create the sort key if one attribute is undefined HOT 4
- Connecting OneTable to a local dynamodb instance
- Support for Mapped Types HOT 3
- Please Help: Update Problem (referenced attribute) HOT 3
- OneSchema type for getCurrentSchema() not set HOT 2
- Update operation does not remove object from array HOT 1
- Help: retrieving items by GSI1 HOT 1
- nested props are not getting mapped correctly with map attribute
- Getting error while update on object that contains undefined attribute value in it. HOT 2
- Cannot Transparently Pass On JSON String From Previously Unncrypted Field HOT 1
- queryItems requires { hidden:true } to support groupByType for AWS SDK v3 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dynamodb-onetable.