Parse platform 具有附加约束的“最接近点”查询
我有一个相对标准的解析查询来获取“checkIn”类中与对象位置最近的项,如下所示:Parse platform 具有附加约束的“最接近点”查询,parse-platform,parse-cloud-code,Parse Platform,Parse Cloud Code,我有一个相对标准的解析查询来获取“checkIn”类中与对象位置最近的项,如下所示: var checkInObject = Parse.Object.extend('checkIn'); var query = new Parse.Query(checkInObject); query.near('location', request.object.get('location')); query.limit(Parse.User.current().get('limit')); 这与预期的一
var checkInObject = Parse.Object.extend('checkIn');
var query = new Parse.Query(checkInObject);
query.near('location', request.object.get('location'));
query.limit(Parse.User.current().get('limit'));
这与预期的一样,但是可以返回执行请求的用户的签入。为了避免这种情况,我添加了一个额外的约束,因此我的代码现在如下所示:
var checkInObject = Parse.Object.extend('checkIn');
var query = new Parse.Query(checkInObject);
query.near('location', request.object.get('location'));
query.notEqualTo('user', Parse.User.current());
query.limit(Parse.User.current().get('limit'));
但是有了这个添加,我不再从查询中收到任何结果。我怎样才能添加约束并仍然获得所需的结果?我的建议:
添加一个名为ownerID的字符串列,并为每个签入指定创建它的解析用户的objectId值。然后,您可以执行以下操作:
var checkInObject = Parse.Object.extend('checkIn');
var query = new Parse.Query(checkInObject);
query.near('location', request.object.get('location'));
query.limit(Parse.User.current().get('limit'));
query.notEqualTo('ownerID', Parse.User.current().get('objectId'));
您还需要确保获取“limit”的行返回一个有效值。您能用简单的英语描述一下您想从查询中得到什么,以便我们可以帮助您构建它吗?或者你只是想跳过当前用户?顺便说一句,notEqualTo是一种昂贵的查询操作符,它会减慢速度……以上就是一个名义上的问题的例子,即任何具有近约束和附加约束的查询都会失败。在与解析人员进行了一些讨论之后,似乎这可能是他们产品中的一个bug,但与此同时,使用附加的notEqualTo约束来解决near问题将是一个不错的选择。注意,notEqualTo可以是doesNotMatchQuery,用于更复杂的示例扫描您发布了返回的原始查询数据的示例?在进行任何筛选之前,包括列标题和所有列。感谢您的回复,但这不是问题所在;问题在于,将近邻约束与任何其他约束相结合似乎会导致查询失败。