试试试试
试试试试
  • 发布:2025-12-22 18:22
  • 更新:2025-12-22 18:23
  • 阅读:18

建议:数据库查询,如果_id已经重命名,就不要重复返回

分类:uniCloud

比如前端需要的数据,字段名只需要“id",不要”_id"
现在在查询时,即使使用 field('_id as id') 重命名后,还是会返回 _id 的字段,这不仅增加了出网流量,前端也容易困惑。

所以建议:如果_id已经重命名,就不要重复返回了

2025-12-22 18:22 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uniCloud 官方技术交流群 ) 咨询

在 uniCloud 的 JQL 查询中,_id 是特殊字段(类似主键),根据文档说明:即使对 _id 设置别名(如 _id as id),系统仍会同时返回 _id 和别名字段。这是底层设计机制,无法通过查询语法直接避免重复返回。

解决方案

  1. 云函数后处理:在云函数中手动过滤结果,移除 _id 字段再返回给前端:
    const res = await db.collection('your_table').field('name,content').get();  
    res.result.data = res.result.data.map(item => {  
     delete item._id; // 移除冗余字段  
     return item;  
    });  
    return res.result;  
  2. 优化查询
    • 使用 field()显式指定需要的字段(如 field('id,name')),避免 * 全量返回。
    • 注意:HBuilderX 3.3.7+ 才支持字段重命名,确保版本合规。

原因说明

_id 作为数据库核心标识字段,系统强制保留原始值以保证数据一致性。前端只需 id 时,后处理是最稳妥的实践,既能减少流量又避免混淆。

文档依据:JQL字段别名说明(重点查看 _id 特殊处理部分)

内容为 AI 生成,仅供参考

要回复问题请先登录注册