簡體   English   中英

如何使用 Python 在 DynamoDB 的列表字段中查詢項目?

[英]How can you query an item in a list field in DynamoDB using Python?

我有一個表,其中包含具有以下屬性的項目:

{
  "country": "USA",
  "names": [
    "josh",
    "freddy"
  ],
  "phoneNumber": "123",
  "userID": 0
}

我正在嘗試通過使用 python 查找名稱來查詢 DynameDB 中的項目。 所以我會在我的代碼中寫下我需要的項目在"names"字段中有"freddy" ”。

我看到很多論壇提到"contains" ,但沒有一個顯示示例......

我當前的代碼如下:

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('users_table')
data = table.query(
    FilterExpression: 'names = :name',
    ExpressionAttributeValues: {
      ":name": "freddy"
    }
)

我顯然不能使用它,因為"names"是一個列表,而不是一個字符串字段。 如何在names中查找"freddy"

由於names字段不是主鍵的一部分,因此您不能使用query names查找項目的唯一方法是使用scan

import boto3
from boto3.dynamodb.conditions import Key, Attr

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('users_table')
data = table.scan(
    FilterExpression=Attr('names').contains('freddy')
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM