Back4app Parse Server查询可打印JSON却无法获取objectId问题求助
问题解决方法
根本原因
Parse JS SDK 对系统内置字段提供了专属访问逻辑,objectId、createdAt、updatedAt三个平台默认生成的字段不属于自定义字段范畴,无法通过读取自定义字段的get("字段名")方法获取值。
正确取值方案
直接访问返回的Parse对象实例的id属性,即可拿到对应记录的objectId值:
- 第一段代码修改示例:
const parseQuery = new Parse.Query("User"); parseQuery.equalTo("username", "Azha"); let queryResult = await parseQuery .find() .then((results) => { results.forEach((prod) => { // 直接读取id属性即可获取objectId console.log("Product ID Available : " + prod.id); }); }) .catch((error) => { console.log(error); });
- 第二段代码修改示例:
const parseQuery = new Parse.Query("User"); parseQuery.equalTo("username", "Azha"); try { let todos = await parseQuery.find(); if (todos.length > 0) { // 直接读取id属性即可获取objectId console.log("yes Approval : " + todos[0].id); } else { console.log("No Approval"); } console.log("- value is : " + JSON.stringify(todos)); console.log("----------------------"); } catch (error) { Alert.alert("Error!", error.message); }
后续更新操作参考
拿到objectId后可以直接基于id生成待更新对象,无需二次查询即可完成数据更新,示例如下:
// 替换为实际获取到的objectId值 const targetUserId = 'IuBGmCtxyu'; const targetUser = Parse.User.createWithoutData(targetUserId); // 设置需要更新的字段和值 targetUser.set('companyname', '更新后的公司名称'); // 执行保存完成更新 await targetUser.save();
内容的提问来源于stack exchange,提问作者zack azha
相关产品推荐
相关产品推荐

