AWS AppSync无in/nin操作符?如何实现排除指定ID的查询
在AWS AppSync GraphQL中实现排除指定数组项的查询
你遇到的问题是因为ne操作符仅支持单个值对比,不能传入数组;而你提到的nin是MongoDB的操作符,AppSync对应的合法操作符是notIn。
针对你的需求,正确的查询写法如下:
const excludedUserIds = [...likedUserIds, ...dislikedUserIds]; const { data } = await API.graphql( graphqlOperation(getUsers, { filter: { id: { notIn: excludedUserIds } } }) );
注意事项
- 确保
excludedUserIds数组中的元素类型与id字段的类型完全匹配(比如都是字符串类型),否则会出现过滤失效或报错。 - 该写法仅适用于DynamoDB数据源的AppSync API,如果你使用的是其他数据源(如Lambda、RDS),需要对应调整过滤逻辑(比如在Lambda中自行处理数组排除,或在RDS中使用SQL的
NOT IN语法)。
内容的提问来源于stack exchange,提问作者kartal şahin
相关产品推荐
相关产品推荐

