我们正在使用解析服务器和mongodb。用户请求ParseObject
并使用领域将它们本地存储在他们的设备上。稍后用户必须检查来自该对象的更新。 ParseObject
提供updatedAt
属性,因此我们会请求updatedAt
已更改的对象。对于单个对象,查询看起来像:
ParseObject object = new ParseObject();
ParseQuery<ParseObject> query = new ParseQuery<>(ParseObject.getQuery());
query.whereEqualTo("objectId", "9jK7lGt7U").whereGreaterThan("updatedAt", object.getUpdatedAt());
ParseObject queriedObject = query.findInBackground();
我们修改了此帖子的查询模型。 ParseObject
是我们模型的伪。
如前所述,必须修改查询以使用许多对象。 objectId
和updatedAt
已知。 查询的外观如何?
答案 0 :(得分:0)
您可以进行查询fromLocalDatastore,
ParseObject queriedObject = query.findInBackground();
query.fromLocalDatastore();
在对每个对象进行查询后,您可以调用每个对象fetchIfNeeded
在您收到的每个对象上,您都可以这样做:
object.fetchIfNeededInBackground(new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
// all fields of the object will now be available here.
}
});
使用您的代码,您可以写下:
ParseQuery<ParseObject> query = new ParseQuery<>(ParseObject.getQuery());
query.whereEqualTo("objectId", "9jK7lGt7U").whereGreaterThan("updatedAt", object.getUpdatedAt());
query.fromLocalDatastore();
ParseObject queriedObject = query.findInBackground();
for( int i=0; i < queriedObject.length-1; i++)
{
queriedObject[i].fetchIfNeededInBackground();
}
我希望我的答案可以解决你的问题