Comments (4)
Is there a way as it stands right now to make the partition key be duplicated to the sort key? Given the array notation for defining sort keys, I don't see how that is possible. I attempted to alias the pk
with id
, and then define id
in the schema as ["sk", 0]
but then the alias isn't unique and I get the associated error for that scenario.
Edit: Would it be possible to use a default provider here that has access to what the pk is set to?
Edit 2: So far the solution I have is the following. Do you know of a better solution?
// Schema
const Record = new Model("Record", {
table: "TestRecordTable",
partitionKey: "partitionKey",
sortKey: "sortKey",
schema: {
partitionKey: {type: "string", alias: "id"},
sortKey: {type: "string", hidden: false},
sk: ["sortKey", 0],
pk: ["partitionKey", 0]
}
);
// DB Operation
const id = `record#${uuid.v4()}`;
const item = {
pk: id,
sk: id
};
from dynamodb-toolbox.
The easiest thing would probably be to use default
instead.
// Schema
const Record = new Model("Record", {
table: "TestRecordTable",
partitionKey: "partitionKey",
sortKey: "sortKey",
schema: {
partitionKey: {type: "string", alias: "id"},
sortKey: {type: "string", onUpdate: true, default: (f) => f.partitionKey }
}
);
I'm working on a better way to do this.
from dynamodb-toolbox.
Unfortunately this doesn't work if the partition key also has a default provider. Although your solution does reduce that amount of data that I have to provide to the Record.put()
call.
from dynamodb-toolbox.
+1 to this feature, I have to duplicate values quite a bit for GSIs, and setting the default over and over is a bit annoying
from dynamodb-toolbox.
Related Issues (20)
- Error when importing abstraction that uses dynamodb-toolbox HOT 1
- Bug on Item.get, where unneeded properties are required HOT 2
- Error when sending EntityV2 `GetItemCommand` with property of type `binary()` HOT 3
- Undefined dependencies for Index keys cause Update / Put failures
- Recent versions do not run onDefault if dependsOn contains undefined parameter HOT 2
- Got Error: Please provide a valid entity definition HOT 2
- Created is changing with puts and is always the same as modified HOT 1
- Is `transform` valid for partition key? HOT 2
- Unable to convert date string to JS Date instance
- getting error for formatter.missingAttribute when using computeKey function to build pk and sk HOT 3
- Unable to save null values in V1 HOT 9
- Type inference for query responses with multiple entities HOT 3
- V1 Migration BatchGetCommand type mismatch HOT 5
- Suggestion: date() type HOT 3
- DeleteItemCommand getting empty input for computedKey HOT 4
- Cannot define index with only `partitionKey` in v1.1 HOT 3
- Application built with esbuild possibly broken after `experimentalDecorators` was activated HOT 4
- $add signature for Sets not matching documentation HOT 2
- EQ operator missing from Range Conditions HOT 2
- Unable to match expression attribute path with schema HOT 2
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-toolbox.