Parse Server 如何通过查询获取对象 ID?
Parse Server How to get an object ID by query?
如果我们想获得对象 ID,我们应该这样做:
String objectId = gameScore.getObjectId();
但是如果我们想通过查询获取对象 ID 怎么办?像这样:
ParseQuery<ParseObject> query = ParseQuery.getQuery("mytable");
query.whereEqualTo("Title", "Adrians Book");
List<ParseObject> results = null;
try {
results = query.find();
if(!results.isEmpty()) {
String objectId = results.getObjectId();
}
} catch (com.parse4cn1.ParseException e) {
Dialog.show("Err", "Something went wrong.", "OK", null);
}
听起来很有趣,你不觉得吗?我希望这是可能的。如您在此示例中所见,查询将从 table 中的特定对象获取值,该值可以跟踪对象 ID,然后也将其返回。 ParseQuery class 应该用 getObjectId() 来实现。因为通过这种方式,即使在应用程序重新启动后,应用程序也始终可以从查询中访问对象 ID,因此在第一个示例中,实际上是 ParseObject 实例的 gameScore 在重新启动后将丢失对数据库的引用。通过查询获取对象 ID,它将能够对应用程序进行编程以自动获取对象 ID,而无需手动执行,也不依赖于 ParseObject 的实例。
据我所知,您需要获取整个对象然后查询它的 ID。我在这里没有看到查询 ID 方法 https://github.com/sidiabale/parse4cn1/blob/41fe491699e604fc6de46267479f47bc422d8978/src/com/parse4cn1/ParseQuery.java
@Shai Almog:非常感谢您花时间阅读 ParseQuery 文档。
我不小心想出了如何完成这个!
ParseQuery<ParseObject> query = ParseQuery.getQuery("mytable");
query.whereEqualTo("Title", "Adrians Book");
List<ParseObject> results = null;
try {
results = query.find();
if(!results.isEmpty()) {
String objectId = results.get(0).getObjectId();
System.out.println(objectId);
}
} catch (com.parse4cn1.ParseException e) {
Dialog.show("Err", "Something went wrong.", "OK", null);
}
是的,在添加方法 .get(index) 后,它允许您访问方法 .getObjectId() 因为结果是一个 ParseObject 列表,然后您的查询结果的相应 objectId 将打印在控制台中!我很高兴它能正常工作,因为我现在不需要序列化每个对象,这会很痛苦。
此外,如果您想使用现有的 objectId 设置 ParseObject 的实例,以防您需要更新数据库中的某些内容,您可以使用此示例:
ParseObject po = ParseObject.create("mytable");
po.setObjectId(//YOUR DESIRED OBJECTID HERE, AS LONG AS IT EXISTS IN THE DATABASE);
如果我们想获得对象 ID,我们应该这样做:
String objectId = gameScore.getObjectId();
但是如果我们想通过查询获取对象 ID 怎么办?像这样:
ParseQuery<ParseObject> query = ParseQuery.getQuery("mytable");
query.whereEqualTo("Title", "Adrians Book");
List<ParseObject> results = null;
try {
results = query.find();
if(!results.isEmpty()) {
String objectId = results.getObjectId();
}
} catch (com.parse4cn1.ParseException e) {
Dialog.show("Err", "Something went wrong.", "OK", null);
}
听起来很有趣,你不觉得吗?我希望这是可能的。如您在此示例中所见,查询将从 table 中的特定对象获取值,该值可以跟踪对象 ID,然后也将其返回。 ParseQuery class 应该用 getObjectId() 来实现。因为通过这种方式,即使在应用程序重新启动后,应用程序也始终可以从查询中访问对象 ID,因此在第一个示例中,实际上是 ParseObject 实例的 gameScore 在重新启动后将丢失对数据库的引用。通过查询获取对象 ID,它将能够对应用程序进行编程以自动获取对象 ID,而无需手动执行,也不依赖于 ParseObject 的实例。
据我所知,您需要获取整个对象然后查询它的 ID。我在这里没有看到查询 ID 方法 https://github.com/sidiabale/parse4cn1/blob/41fe491699e604fc6de46267479f47bc422d8978/src/com/parse4cn1/ParseQuery.java
@Shai Almog:非常感谢您花时间阅读 ParseQuery 文档。 我不小心想出了如何完成这个!
ParseQuery<ParseObject> query = ParseQuery.getQuery("mytable");
query.whereEqualTo("Title", "Adrians Book");
List<ParseObject> results = null;
try {
results = query.find();
if(!results.isEmpty()) {
String objectId = results.get(0).getObjectId();
System.out.println(objectId);
}
} catch (com.parse4cn1.ParseException e) {
Dialog.show("Err", "Something went wrong.", "OK", null);
}
是的,在添加方法 .get(index) 后,它允许您访问方法 .getObjectId() 因为结果是一个 ParseObject 列表,然后您的查询结果的相应 objectId 将打印在控制台中!我很高兴它能正常工作,因为我现在不需要序列化每个对象,这会很痛苦。
此外,如果您想使用现有的 objectId 设置 ParseObject 的实例,以防您需要更新数据库中的某些内容,您可以使用此示例:
ParseObject po = ParseObject.create("mytable");
po.setObjectId(//YOUR DESIRED OBJECTID HERE, AS LONG AS IT EXISTS IN THE DATABASE);