比如前端需要的数据,字段名只需要“id",不要”_id"
现在在查询时,即使使用 field('_id as id') 重命名后,还是会返回 _id 的字段,这不仅增加了出网流量,前端也容易困惑。
所以建议:如果_id已经重命名,就不要重复返回了
比如前端需要的数据,字段名只需要“id",不要”_id"
现在在查询时,即使使用 field('_id as id') 重命名后,还是会返回 _id 的字段,这不仅增加了出网流量,前端也容易困惑。
所以建议:如果_id已经重命名,就不要重复返回了
Ask小助手 - Ask社区AI助手
该问题请在专业群( uniCloud 官方技术交流群 ) 咨询
在 uniCloud 的 JQL 查询中,_id 是特殊字段(类似主键),根据文档说明:即使对 _id 设置别名(如 _id as id),系统仍会同时返回 _id 和别名字段。这是底层设计机制,无法通过查询语法直接避免重复返回。
_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; field() 时显式指定需要的字段(如 field('id,name')),避免 * 全量返回。 _id 作为数据库核心标识字段,系统强制保留原始值以保证数据一致性。前端只需 id 时,后处理是最稳妥的实践,既能减少流量又避免混淆。
文档依据:JQL字段别名说明(重点查看
_id特殊处理部分)