2015-08-13 80 views
1

說我有照片和用戶的表格。Dynamodb在查詢中是否支持「in」子句?

鑑於我有一個我關注的用戶列表[user1,user2,...],我想要獲取我關注的人的照片列表。

我如何查詢的照片where photo.createdBy in [user1,user2,user3...]

表我看到dynamodb擁有一批操作,但這需要一個主鍵,在這種情況下,我們將針對查詢輔助索引(createdBy)。

有沒有辦法在dynamodb中做這樣的查詢?

回答

0

如果您在photo.createdBy純粹的查詢,那麼你應該創建一個global secondary index

要在非關鍵屬性加快查詢速度,你可以創建一個全球次級指數。全局二級索引包含來自表的一系列屬性,但它們由與該表不同的主鍵組織。索引鍵不需要表中的任何鍵屬性;它甚至不需要具有與表格相同的關鍵模式。

這當然只會檢索一個項目。要返回多個項目時限制效果,請使用FilterExpression

與查詢或掃描操作,你可以提供一個可選的過濾表達細化結果返回給你。過濾器表達式允許您在查詢或掃描數據之後,但在返回給您之前對數據應用條件。 只有符合您條件的物品纔會退回。

這可以應用於FilterScan,但要小心掃描匹配條目時使用過多的讀取容量單位。

+0

是否支持使用in子句進行查詢?我只看到說你可以使用平等或其他操作符,但在子句中沒有數組的文檔 – MonkeyBonkey

+0

您可以在過濾器表達式中使用IN操作符,這意味着在這種情況下,您需要掃描您的表並通過photo.createdBy IN [user1, user2,user3]等 –