You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appwrite查询获取已完成任务失败问题求助

修复Appwrite查询已完成任务的逻辑问题

你的查询逻辑问题出在已完成任务分支的Query.equal参数上:

你当前用了数组形式传递[true],但Appwrite的Query.equal方法针对布尔类型字段时,直接传入布尔值即可,数组格式是用于匹配多个可选值的场景(比如枚举字段匹配多个选项),布尔字段用数组会导致匹配逻辑失效。

修正后的代码

const fetchTodos = async (type = 'all') => {
    let promise;
    if (type === 'all') {
        promise = databases.listDocuments(DATABASES_ID, COLLECTION_ID)
    } else if (type === 'active') {
        promise = databases.listDocuments(DATABASES_ID, COLLECTION_ID, [
            Query.equal('completed', false )
        ])
    } else {
        // 把 [true] 改为直接传入 true
        promise = databases.listDocuments(DATABASES_ID, COLLECTION_ID, [
            Query.equal('completed', true)
        ])
    }

    promise.then(function (response) {
        setTodos(response.documents)
        console.log(response); // Success
    }, function (error) {
        console.log(error); // Failure
    });
}

额外检查点

  • 确认你的Appwrite集合中,completed字段的类型确实是布尔(Boolean),如果是字符串类型(比如存的是"true"字符串),需要调整查询值为对应的字符串,或者修改字段类型为布尔型。

内容的提问来源于stack exchange,提问作者yagyesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:52:02