有没有办法缩短 Parse Server 上的查询?

Is there a way to make the queries on the Parse Server shorter?

原始查询

const Post = Parse.Object.extend('Post')
const queryPost = new Post()

queryPost.startsWith('title', 'Good Programming')
queryPost.greaterThan('totalLike', 1000)
queryPost.limit(100)
queryPost.include('author')

query.find()

预期查询

const Post = Parse.Object.extend('Post')
const queryPost = new Post()

queryPost.find({
   startsWith: {
      title: 'Good Programming'
   },
   greaterThan: {
      totalLike: 1000
   },
   include: ['post'],
   limit: 100
})

上面方法的好处,我想跨地方试的时候可以照常复制粘贴

您可以执行如下操作,但未记录在案:

const query = Parse.Query.fromJSON('ClassName', {
  where: {
    title: {
      '$regex': '^Good Programming'
    },
    totalLike: {
      '$gt': 1000
    }
  },
  include: 'post',
  limit: 100
});

query.find();

如果您需要 JSON 版本的查询,只需 运行 toJSON 方法即可将格式化查询获取为 JSON:

例子

const Post = Parse.Object.extend('Post')
const queryPost = new Post()

queryPost.startsWith('title', 'Good Programming')
queryPost.greaterThan('totalLike', 1000)
queryPost.limit(100)
queryPost.include('author')
queryPost.select(['id', 'name'])

console.log(queryPost.toJSON())

输出

{
  where: {
    title: {
      '$regex': '^\QGood Programming\E'
    },
    totalLike: {
      '$gt': 1000
    }
  },
  include: 'post',
  keys: 'id,name',
  limit: 100
}

你可以使用fromJSON方法重新执行上面的JSON查询。

例子

const query = Parse.Query.fromJSON('ClassName', {
  where: {
    title: {
      '$regex': '^Good Programming'
    },
    totalLike: {
      '$gt': 1000
    }
  },
  include: 'post',
  keys: 'id,name',
  limit: 100
});

query.find();