发现网上对于 parse server相关查询用法的文章较少,于是总结了一下近期学习到parse server的基本知识点。
1.查询有效性排行:
- 等于
- 包含
- 小于、小于等于、大于、大于等于
- 匹配字符串开头
- 不等于
- 不包含
- 其他
2.比较查询:
逻辑操作 | Query 方法 |
---|---|
等于 | equalTo |
不等于 | notEqualTo |
大于 | greaterThan |
大于等于 | greaterThanOrEqualTo |
小于 | lessThan |
小于等于 | lessThanOrEqualTo |
3.匹配查询
如果你想查询某字段包含一个和另一个查询匹配的对象,你可以使用matchesQuery
4.结果排序
返回结果升序和降序
// 按分数字段升序排列结果
query.ascending("score");
// 按分数字段降序排列结果
query.descending("score");
5.数组查询:
如果你想查询与数组中任意值匹配的对象,可以使用containedIn
方法,并提供一个可接受值的数组。
如果你想查询和数组中任意值都不匹配的对象,你可以使用notContainedIn
,并给定一个排除值的数组
如果你想查询指定字段已被设置的对象,你可以使用exists
;反之,如果想查询未被设置的对象,你可以使用doesNotExist
// 查找已设置分数的对象
query.exists("score");
// 查找未设置分数的对象
query.doesNotExist("score");
6.匹配查询:
你可以使用meachesKeyInQuery
方法查询对象,对象中的某个键值是和另一个请求返回的一组结果中的键值匹配的。比如,如果你有一个包含了运动队的类,并且你保存了用户的老家信息在user类中,你现在要查询获胜队伍的成员家乡信息,你可以这样请求:
const Team = Parse.Object.extend("Team");
const teamQuery = new Parse.Query(Team);
teamQuery.greaterThan("winPct", 0.5);
const userQuery = new Parse.Query(Parse.User);
userQuery.matchesKeyInQuery("hometown", "city", teamQuery);
userQuery.find({
success: function(results) {
// 结果列出了有家乡球队并取得胜利记录的成员的家乡信息
}
});
反之使用doesNotMatchKeyInQuery
const Team = Parse.Object.extend("Team");
const teamQuery = new Parse.Query(Team);
teamQuery.greaterThan("winPct", 0.5);
const losingUserQuery = new Parse.Query(Parse.User);
losingUserQuery.doesNotMatchKeyInQuery("hometown", "city", teamQuery);
losingUserQuery.find({
success: function(results) {
//结果列出了有家乡球队并取得失败记录的成员的家乡信息
}
});
7.数据类型补充:
一旦字段类型被设置了至少一次,这个字段的类型将被锁定为设置的字段类型。举个例子,加入你有一个User对象,你为其设置了String类型的name字段,那么以后name的数据类型只能是String,如果你尝试保存其他类型到这个字段,服务器会返回错误。