第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 DynamoDB Go SDK 中編寫查詢,其中分區(qū)鍵的條件相等,但一組分區(qū)值的排序鍵具有

如何在 DynamoDB Go SDK 中編寫查詢,其中分區(qū)鍵的條件相等,但一組分區(qū)值的排序鍵具有

Go
泛舟湖上清波郎朗 2022-08-15 15:39:09
我在 DynamoDB 中有一個(gè)帶有復(fù)合鍵的表user_id(分區(qū)鍵)時(shí)間戳(排序鍵)我想檢索一組項(xiàng)目,我有一組user_ids我想檢索,但我也需要時(shí)間戳是每個(gè)user_id的最大值。例如:user_id時(shí)間戳阿特11614910613值111614902527值 221614910683值 221614881311值 231614902527值 2我想檢索user_id 1 和 2 的行,以及每個(gè)用戶的最大時(shí)間戳。在這種情況下,我的結(jié)果集應(yīng)該是:user_id時(shí)間戳阿特11614910613值121614910683值 2我現(xiàn)在可以逐項(xiàng)執(zhí)行此操作,執(zhí)行以下 Key 表達(dá)式:cond := expression.KeyAnd(    expression.Key("user_id").Equal(expression.Value(userId)),    expression.Key("timestamp").LessThanEqual(expression.Value(int32(time.Now().Unix()))),    )expr, err:= expression.NewBuilder().WithKeyCondition(cond).Build()if err!=nil {    panic(err)}input := &dynamodb.QueryInput{    ExpressionAttributeNames: expr.Names(),    ExpressionAttributeValues: expr.Values(),    KeyConditionExpression: expr.KeyCondition(),    TableName: aws.String("td.notes"),    Limit: aws.Int64(1),    ScanIndexForward: aws.Bool(false),}我的問題是,我不知道如何傳遞user_id鍵的一組值,而不是單個(gè)值。我看了一下 BatchGetItem,我知道我可以做這樣的事情:mapOfAttrKeys := []map[string]*dynamodb.AttributeValue{}for _, place := range userIDs {    mapOfAttrKeys = append(mapOfAttrKeys, map[string]*dynamodb.AttributeValue{        "user_id": &dynamodb.AttributeValue{            S: aws.String(place),        },        "timestamp": &dynamodb.AttributeValue{            N: aws.String(timestamp),        },    })}input := &dynamodb.BatchGetItemInput{    RequestItems: map[string]*dynamodb.KeysAndAttributes{        tableName: &dynamodb.KeysAndAttributes{            Keys: mapOfAttrKeys,        },    },}但是我不能在時(shí)間戳中放置“小于”條件。
查看完整描述

1 回答

?
慕姐8265434

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊

GetItem 和 BatchGetItem 需要確切的主鍵。

您需要為要返回的每個(gè)用戶發(fā)出單獨(dú)的 Query()。

返回 max 的關(guān)鍵是你所發(fā)現(xiàn)的

Limit: aws.Int64(1),
ScanIndexForward: aws.Bool(false),

你真的不應(yīng)該需要這個(gè)

expression.Key("timestamp").LessThanEqual(expression.Value(int32(time.Now().Unix())))



查看完整回答
反對(duì) 回復(fù) 2022-08-15
  • 1 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)