如何在 Amplify Datastore 中创建动态查询

How can I create a dynamic query in Amplify Datastore

如何在 amplify react 应用程序中创建动态查询

预期查询:

const posts = await DataStore.query(Post, c => c.or(
  c => c.rating("gt", 4).status("eq", PostStatus.PUBLISHED)
));

'rating' 和 'status' 可能会因用户而异。请帮我创建一个动态数据存储查询。

假设您有一个对象,它定义了哪些用户可以使用哪些过滤器查询。这里我假设用户可以是两种类型typeA和typeB。

const queryTable = {
    typeA: ['status', 'rating'],
    typeB: ['active', 'status']
}

const posts = await DataStore.query(Post, c => c.or(
    c => {
        const operator = "eq" || "gt";
        const value = 4 || "published";
        queryTable[user.type].forEach(func, => {
            c.[func](operator, value)
        })
        return c
    }
));

你必须找到一种方法来传递运算符和值。