uni-app 在unicloud的云对象中使用jql时无法使用dbCmd.and()

uni-app 在unicloud的云对象中使用jql时无法使用dbCmd.and()

产品分类:uniCloud/App

示例代码:

let queryJQL = dbJQL.collection('sv-id-vip-subscription', tempPlanDB) // 联表查询  

query = queryJQL.where({  
        // start_date: dbCmd.and(dbCmd.gt(start_date_range[0]), dbCmd.lt(start_date_range[1]))  
        // start_date: dbCmd.gt(start_date_range[0]).and(dbCmd.lt(start_date_range[1]))  
        start_date: dbCmd.gt(start_date_range[0]).lt(start_date_range[1])  
      }) // 使用dbCmd.and不正常,查询不了数据  

query = queryJQL.where(`start_date > ${start_date_range[0]} && start_date < ${start_date_range[1]}`) // 使用jql查询正常

上面 dbCmd.and()语法就是查询不了数据,但是下面的jql查询写法就正常查询

操作步骤:

let queryJQL = dbJQL.collection('sv-id-vip-subscription', tempPlanDB) // 联表查询  

query = queryJQL.where({  
        // start_date: dbCmd.and(dbCmd.gt(start_date_range[0]), dbCmd.lt(start_date_range[1]))  
        // start_date: dbCmd.gt(start_date_range[0]).and(dbCmd.lt(start_date_range[1]))  
        start_date: dbCmd.gt(start_date_range[0]).lt(start_date_range[1])  
      }) // 使用dbCmd.and不正常,查询不了数据  

query = queryJQL.where(`start_date > ${start_date_range[0]} && start_date < ${start_date_range[1]}`) // 使用jql查询正常

上面 dbCmd.and()语法就是查询不了数据,但是下面的jql查询写法就正常查询

预期结果:

在unicloud的云对象中使用jql进行联表查询后,也能支持dbCmd.and()语法

实际结果:

在unicloud的云对象中使用jql进行联表查询后,使用dbCmd.and()语法查询不了数据

bug描述:

在unicloud的云对象中使用jql,就不能使用dbCmd.and()了,如下实例:

let queryJQL = dbJQL.collection('sv-id-vip-subscription', tempPlanDB) // 联表查询  

query = queryJQL.where({  
        // start_date: dbCmd.and(dbCmd.gt(start_date_range[0]), dbCmd.lt(start_date_range[1]))  
        // start_date: dbCmd.gt(start_date_range[0]).and(dbCmd.lt(start_date_range[1]))  
        start_date: dbCmd.gt(start_date_range[0]).lt(start_date_range[1])  
      }) // 使用dbCmd.and不正常,查询不了数据  

query = queryJQL.where(`start_date > ${start_date_range[0]} && start_date < ${start_date_range[1]}`) // 使用jql查询正常

上面 dbCmd.and()语法就是查询不了数据,但是下面的jql查询写法就正常查询


更多关于uni-app 在unicloud的云对象中使用jql时无法使用dbCmd.and()的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 在unicloud的云对象中使用jql时无法使用dbCmd.and()的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 UniApp 中使用 UniCloud 的云对象时,dbCmd.and() 是用于构建复合查询条件的函数。如果你在使用 dbCmd.and() 时遇到问题,可能有以下几个原因和解决方案:

1. 确保 dbCmd 已正确导入

在使用 dbCmd.and() 之前,确保你已经正确导入了 dbCmd。通常可以在云对象的代码中使用以下方式导入:

const db = uniCloud.database();
const dbCmd = db.command;

2. 检查 dbCmd.and() 的用法

dbCmd.and() 用于将多个查询条件组合成一个复合查询条件。确保你正确使用了该函数。例如:

const db = uniCloud.database();
const dbCmd = db.command;

const query = db.collection('yourCollection').where(
  dbCmd.and([
    { field1: value1 },
    { field2: value2 }
  ])
);

query.get().then(res => {
  console.log(res);
}).catch(err => {
  console.error(err);
});

3. 检查 UniCloud 的版本

确保你使用的 UniCloud 版本支持 dbCmd.and()。如果你使用的是较旧的版本,可能不支持该函数。可以通过更新 UniCloud 的 SDK 来解决问题。

4. 使用 dbCmd.and() 的替代方案

如果你仍然无法使用 dbCmd.and(),可以考虑使用其他方式来构建复合查询条件。例如,直接在 where 中使用多个条件:

const db = uniCloud.database();

const query = db.collection('yourCollection').where({
  field1: value1,
  field2: value2
});

query.get().then(res => {
  console.log(res);
}).catch(err => {
  console.error(err);
});

5. 查看 UniCloud 官方文档

如果以上方法都无法解决问题,建议查看 UniCloud 的官方文档,了解最新的 API 使用方法和注意事项。官方文档通常会有详细的示例和常见问题的解答。

6. 检查 UniCloud 云函数的运行环境

有时问题可能出在云函数的运行环境上,确保你的云函数运行环境配置正确,并且没有其他冲突的配置或代码。

7. 调试和日志

如果问题依然存在,可以通过添加调试日志来检查 dbCmd.and() 的输入和输出,以及查询的实际执行情况。例如:

console.log('Query conditions:', dbCmd.and([
  { field1: value1 },
  { field2: value2 }
]));
回到顶部