parse server基本知识点(一)

257 阅读2分钟

发现网上对于 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,如果你尝试保存其他类型到这个字段,服务器会返回错误。