我正在實施一個網站,其中包含一個dynamodb + nodejs後端。我在服務器端使用Vogels.js來查詢dynamodb並在網頁上顯示結果。由於我的查詢返回了很多結果,因此我希望最初只返回N個(如5個)結果返回給用戶,並在用戶請求更多時返回N個結果。使用vogels js實現分頁
有沒有辦法可以運行兩個vogels查詢與第二個查詢從第一個查詢離開的地方開始?謝謝。
我正在實施一個網站,其中包含一個dynamodb + nodejs後端。我在服務器端使用Vogels.js來查詢dynamodb並在網頁上顯示結果。由於我的查詢返回了很多結果,因此我希望最初只返回N個(如5個)結果返回給用戶,並在用戶請求更多時返回N個結果。使用vogels js實現分頁
有沒有辦法可以運行兩個vogels查詢與第二個查詢從第一個查詢離開的地方開始?謝謝。
是,VOGELS完全支持查詢和掃描操作分頁。
例如:
var Tweet = vogels.define('tweet', {
hashKey : 'UserId',
rangeKey : 'PublishedDateTime',
schema : {
UserId : Joi.string(),
PublishedDateTime : Joi.date().default(Date.now),
content : Joi.string()
}
});
// Fetch the 5 most recent tweets from user with id 555:
Tweet.query(555).limit(5).descending().exec(function (err, data) {
var paginationKey = data.LastEvaluatedKey;
// Fetch the next page of 5 tweets
Tweet.query(555).limit(5).descending().startKey(paginationKey).exec()
});
是的,有可能的話,DynamoDB有一些名爲「LastEvaluatedKey」的東西可以滿足你的目的。
步驟1)查詢您的表選項 「限制」=記錄
數是指:http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html
步驟2)如果查詢比 「限制值」 更多的記錄, DynamoDB將返回一個「LastEvaluatedKey」,您可以在下一個查詢中傳遞「ExclusiveStartKey」以獲取下一組記錄,直到沒有記錄爲止
參考:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#QueryAndScan.Query
注:注意,讓以前的記錄集,您可能需要存儲所有的「LastEvaluatedKeys」,並在應用層面實現這個
謝謝你的回覆!我使用Vogels JS訪問dynamoDB而不是Amazon DynamoDB JS API,並且想知道如何在Vogels中執行此操作。 –
我猜你正在使用這個https://github.com/ryanfitz/vogels,它只是一個映射器,我提到的所有選項都存在於它中。 –
是的。我正在使用github.com/ryanfitz/vogels。我沒有找到如何在vogels的文檔中指定LastEvaluatedKey。將深入代碼,看看它是如何工作的。謝謝您的回覆。 –
謝謝。瑞安。它的功能就像一個魅力 –
這對分頁中的'next'頁面非常有用。有沒有開箱即用的'previous'頁面解決方案? – Srle
'LastEvaluatedKey'意味着什麼? – jasmo2