收藏
回答

在查询数据时,报错-601002?

如图,当点击查询按钮时,报错,当点击选项卡的时候,获取到对应的数据,当下拉刷新时,没有反应,当点击选项卡时,获取到对应的数据。求指教,这个查询条件的索引要如何弄?

 data: {
        title: ["全部""我要找车""我要找人""我找货车""我要找货"],
        hasmore: false,
        vehicles: '',
        startPoint: '',
        goal: '',
        isQuerying: false,
        currentIndex: '',
        vhereRes: '',
    },
 /**
     * 获取选项卡
     */
    onItemChengdeEvent(event) {
        var index = event.detail.index;
        this.setData({
            currentIndex: index
        });
        if (!this.data.isQuerying) {
            this.lowdrelease();
        } else {
            this.onchaxun()
        }
    },
/**
     * 获取数据库数据
     */


    async loadData(start = 0, vehicle) {
        const that = this;
        const index = that.data.currentIndex;
        let query = {};
        switch (index) {
            case 0:
                break;
            case 1:
                query = {carpool: '我要找车'};
                break;
            case 2:
                query = {carpool: '我要找人'};
                break;
            case 3:
                query = {carpool: '我找货车'};
                break;
            case 4:
                query = {carpool: '我要找货'};
                break;
        }
        console.log(query)
        const vhereRes = {
            startPoint: db.RegExp({ regexp: that.data.startPoint, options: 'i' }),
            goal: db.RegExp({ regexp: that.data.goal, options: 'i' })
        };  
        console.log('查询事件起点和终点条件', vhereRes)
        const quer = that.data.isQuerying ? _.and(vhereRes, query) : query;
        console.log(quer)
        const promise = db.collection(vehicle).skip(start).limit(2)
            .orderBy("redden.reddenStartTime"'desc')
            .orderBy("topping.toppingStarttime""desc")
            .orderBy("create_time""desc");
        const dataRes = await promise.where(quer).get();
        const vehicles = dataRes.data;
        console.log(vehicles);
        const countRes = await db.collection(vehicle).where(quer).count();
        const total = countRes.total;
        console.log(total)
        const newVehicles = start > 0 ? this.data.vehicles.concat(vehicles) : vehicles;
        newVehicles.forEach((vehicle, index) => {
            vehicle.create_time = vehicle.create_time.toString();
        });
        const hasmore = false
        return {newVehicles,total,hasmore};
    },
    /**
     * 获取初始数据
     */
    async lowdrelease(start = 0) {
        const that = this;
        const {newVehicles: vehicles,total: vehiclesTotal,hasmore: hasmore} = await that.loadData(start, 'vehicle');
        that.setData({
            vehicles: vehicles,
            hasmore: hasmore,
            result: vehiclesTotal
        })
    },
/**
     * 点击查询事件
     */


    async onchaxun(start = 0) {
        const that = this;
        that.setData({
            isQuerying: true,
        })
        const {newVehicles: vehicles,total: vehiclesTotal,hasmore: hasmore} = await that.loadData(start, 'vehicle');
        that.setData({
            startPointStr: '',
            goalStr: '',
            vehicles: vehicles,
            hasmore: hasmore,
            result: vehiclesTotal
        });
    },
回答关注问题邀请回答
收藏

1 个回答

  • 云开发小助手CloudBase
    云开发小助手CloudBase
    11-11

    根据您提供的信息,当点击查询按钮时报错,错误码为 `-601002`,这通常表示查询条件存在问题。以下是一些可能的解决方案和建议:

    1. 查询条件:

       确保查询条件的格式正确,特别是字段名和值的匹配。

       检查是否有拼写错误或语法错误。

    2. 索引优化:

       确保数据库表中的相关字段已经建立了索引。索引可以显著提高查询效率。

      如果查询条件涉及到多个字段的组合,可以考虑创建复合索引。

    3. 调试信息:

       查看详细的错误信息,通常会包含请求 ID (`requestid`),可以帮助定位问题。

       使用 `console.log` 或其他调试工具输出查询条件和响应结果,以便更好地理解问题所在。

    4. 网络请求:

       确保网络请求正常,没有被拦截或中断。

      检查是否有跨域请求的问题。

    5. 代码逻辑:

       确保在点击查询按钮时,正确触发了数据请求的逻辑。

       检查是否有其他代码逻辑干扰了查询操作。

    以下是一个简单的示例,展示如何在点击查询按钮时触发数据请求:

    ```javascript

    document.getElementById('queryButton').addEventListener('click', () => {

      const query = {

        // 你的查询条件

      };

      fetch('/api/query', {

        method: 'POST',

        headers: {

          'Content-Type': 'application/json'

        },

        body: JSON.stringify(query)

      })

      .then(response => response.json())

      .then(data => {

        console.log('请求结果', data);

      })

      .catch(e => {

        console.log('错误代码', e.code, '错误信息', e.message);

      });

    });

    ```

    如果问题依然存在,建议提供更多的代码细节或错误日志,以便进一步诊断问题。


    11-11
    有用
    回复
登录 后发表内容