2 回答

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
DynamoDB 中的操作Query
根據(jù)主鍵值查找項(xiàng)目。GSI
您可以查詢(xún)具有復(fù)合主鍵(分區(qū)鍵和排序鍵)的任何表或二級(jí)索引 ( )。
現(xiàn)在對(duì)于你的問(wèn)題,你有兩個(gè)選擇:
選項(xiàng) 1
設(shè)為
FARMERID
您的 GSI
選項(xiàng)2
使用
Scan
方法并過(guò)濾結(jié)果
現(xiàn)在您需要根據(jù)您的需求進(jìn)行成本評(píng)估。每種方法都有其自身的優(yōu)點(diǎn)和缺點(diǎn)。
根據(jù)評(píng)論,一種方法可能是
var data =?
[
? ? {
? blocknumber: '20',
? BusinessData: {
? ? BASE_UNIT: 'kg',
? ? FARMERID: 'FAINKABR0001',
? ? FARMLOCATION: 'Farm 3927',
? ? GAPINFO: {},
? ? PLANTINGDATE: '2020-11-02T18:30:00.000Z',
? ? PRODUCEQUANTITES: [
? ? ? {
? ? ? ? name: 'Priya',
? ? ? ? qty: 200
? ? ? }
? ? ],
? ? SELECTED_UNIT: {
? ? ? NAME: 'kg'
? ? }
? },
? chaincodeID: 'producechaincode',
? docType: 'Produce',
? PRID: 'PRFAINKABR0007',
? PRODUCE: 'Sweetcorn',
? STATUS: 'Approved',
? timestamp: '2020-12-06T13:03:08.857Z'
},
{
? blocknumber: '20',
? BusinessData: {
? ? BASE_UNIT: 'kg',
? ? FARMERID: 'FAINKABR0002',
? ? FARMLOCATION: 'Farm 3927',
? ? GAPINFO: {},
? ? PLANTINGDATE: '2020-11-02T18:30:00.000Z',
? ? PRODUCEQUANTITES: [
? ? ? {
? ? ? ? name: 'Priya',
? ? ? ? qty: 200
? ? ? }
? ? ],
? ? SELECTED_UNIT: {
? ? ? NAME: 'kg'
? ? }
? },
? chaincodeID: 'producechaincode',
? docType: 'Produce',
? PRID: 'PRFAINKABR0007',
? PRODUCE: 'Sweetcorn',
? STATUS: 'Approved',
? timestamp: '2020-12-06T13:03:08.857Z'
},
{
? blocknumber: '20',
? BusinessData: {
? ? BASE_UNIT: 'kg',
? ? FARMERID: 'FAINKABR0001',
? ? FARMLOCATION: 'Farm 3927',
? ? GAPINFO: {},
? ? PLANTINGDATE: '2020-11-02T18:30:00.000Z',
? ? PRODUCEQUANTITES: [
? ? ? {
? ? ? ? name: 'Priya',
? ? ? ? qty: 200
? ? ? }
? ? ],
? ? SELECTED_UNIT: {
? ? ? NAME: 'kg'
? ? }
? },
? chaincodeID: 'producechaincode',
? docType: 'Produce',
? PRID: 'PRFAINKABR0007',
? PRODUCE: 'Sweetcorn',
? STATUS: 'Approved',
? timestamp: '2020-12-06T13:03:08.857Z'
}
];
function filterResponse(data, id) {
? for(var i = 0; i < data.length; i++) {
? ? if(data[i].BusinessData.FARMERID === id ) {
? ? ? console.log(data[i]);
? ? }
? }
}
filterResponse(data, "FAINKABR0001");

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
我還添加了我的整個(gè)代碼,將來(lái)有人會(huì)遇到同樣的問(wèn)題,這里 FilterExpression 為 FilterExpression: "BusinessData.FARMERID = :farmeridvalue"
在這里,我們需要給 FilterExpression 值提供我們想要查詢(xún)的屬性,即BusinessData.FARMERID并給出一個(gè)名稱(chēng),正如我farmeridvalue現(xiàn)在給出的那樣,您已將ExpressionAttributeValues我設(shè)置為搜索值,如下所示FAINKABR0001
完整掃描碼如下
var params = {
TableName: "Your_tableName",
FilterExpression: "BusinessData.FARMERID = :farmeridvalue",
ExpressionAttributeValues: {
":farmeridvalue" :"FAINKABR0001"
}
};
docClient.scan(params, onScan);
function onScan(err, data) {
if (err) {
console.error("Unable to scan the table. Error JSON:", JSON.stringify(err, null, 2));
} else {
// print all the movies
console.log("Scan succeeded.", data);
data.Items.forEach(function(Block) {
console.log( "result",
Block.docType + ": ",
Block.timestamp, "- rating:", Block.BusinessData.FARMERID);
});
// continue scanning if we have more movies, because
// scan can retrieve a maximum of 1MB of data
if (typeof data.LastEvaluatedKey != "undefined") {
console.log("Scanning for more...");
params.ExclusiveStartKey = data.LastEvaluatedKey;
docClient.scan(params, onScan);
}
}
}
添加回答
舉報(bào)