unicloud web控制台在uni-app中云数据库上传数据到某个表后按某些字段进行搜索时搜索不到

unicloud web控制台在uni-app中云数据库上传数据到某个表后按某些字段进行搜索时搜索不到

示例代码:

const wordCollection = db.collection('words');  
const countResult = await wordCollection.where(where).count();  
const total = countResult.total;  

// 查询列表  
const wordResult = await wordCollection  
  .where(where)  
  .skip((page - 1) * pageSize)  
  .limit(pageSize)  
  .get();

操作步骤:

  1. 构建words表
  2. 控制台云数据库上传数据;
  3. 搜索"wordbookId":"67ecf4df652341f3aba55bdd"字段;

预期结果:

搜索得到数据

实际结果:

数据显式为0

bug描述:

通过unicloud web控制台,云数据库上传数据到某个表后,按某些字段进行搜索时搜索不到:

  1. 控制台按"field":"value"的格式进行搜索,搜索不到数据;
  2. 云函数中采用collection.where也获取不到。 但如果对数据进行【管理】-【确认】操作后,就搜索得到了。

更多关于unicloud web控制台在uni-app中云数据库上传数据到某个表后按某些字段进行搜索时搜索不到的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

上传的格式有要求,特别是_id类型的数据, 你可以通过正常的数据导出看看就能发现差别,且每个云厂商的格式都不太一样

更多关于unicloud web控制台在uni-app中云数据库上传数据到某个表后按某些字段进行搜索时搜索不到的实战教程也可以访问 https://www.itying.com/category-93-b0.html


感谢,原来还有这个差别

根据描述,这个问题很可能是由于数据索引未及时更新导致的。在UniCloud中,新上传的数据需要等待索引构建完成后才能被正常查询。

解决方案:

  1. 确认数据确实已上传成功,可以在控制台直接查看数据是否存在

  2. 对于新上传的数据,建议:

  • 等待1-2分钟让索引自动更新
  • 或者手动点击"管理"-"确认"操作触发索引更新
  1. 检查查询条件是否正确:
const where = {
  wordbookId: "67ecf4df652341f3aba55bdd"
}
  1. 确保字段类型匹配,特别是ObjectId类型的字段需要特殊处理

  2. 可以尝试使用临时解决方案:

const wordResult = await wordCollection
  .where(where)
  .get({
    getTemp: true  // 临时查询,不依赖索引
  })
回到顶部