Ich habe eine einfache Tabelle in meiner DynamoDB, und ich möchte eine einfache Abfrage tun, nur eine Liste, wo status = active
Abfrage in DynamoDB ohne Global Index
const AWS = require('aws-sdk');
const config = require('../../../../config/dynamo');
const { URI } = config;
AWS.config.update({
region: 'us-east-1'
});
const dynamodb = new AWS.DynamoDB({
endpoint: new AWS.Endpoint(URI)
});
const params = {
AttributeDefinitions: [{
AttributeName: 'idPhysicalPerson',
AttributeType: 'N'
},
{
AttributeName: 'cpf',
AttributeType: 'S'
}],
KeySchema: [{
AttributeName: 'idPhysicalPerson',
KeyType: 'HASH'
},
{
AttributeName: 'cpf',
KeyType: 'RANGE'
}],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
},
TableName: 'PhysicalPerson'
};
dynamodb.createTable(params, (err, data) => {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
diese Tabelle eine Menge von Eigenschaften enthält, und wenn ich Willst du eine einfache Abfrage durchführen, muss ich diese Felder immer in einen globalen Index setzen?
Ich möchte nur alle Daten erhalten, die den active
Status hat, aber in einer realen Anwendung, wenn ich eine Funktion wie advanced filter
, wo ich eine Menge von Eigenschaften festlegen können, Wie kann dies in DynamoDB behandelt werden whitout setzen alle Eigenschaften in Globaler Index?