首页 > 解决方案 > 如何将 {useMasterKey: true} 传递给解析服务器 js 聚合查询?

问题描述

我想使用 parse-server js 进行聚合查询。以下代码的风格,但不是使用 .find(),而是使用 .aggregate(pipeline, options)。

const query = new Parse.Query("myClass");
query.find().then( // ... do something with the resulting objects)
)

根据文档(https://parseplatform.org/Parse-SDK-JS/api/v1.11.0/Parse.Query.html#aggregate),聚合需要使用主密钥。但是,调用 .aggregate(pipeline, options) 的 options 参数不允许传递具有使用定义的主密钥的字段的对象。

网上找到的解决方法建议使用已弃用的 Parse.Cloud.useMasterkey。

标签: mongodbparse-server

解决方案


您必须在 Parse SDK 初始化期间设置主密钥。在您的代码中的某个时刻,您可能会使用类似于以下的代码初始化与 Parse Server 的连接:

Parse.serverURL = 'http://url_to_parse_server.com'
Parse.initialize('appId')

你要做的是在.initialize上面的函数中传递两个新参数。第二个参数是使用JS SDK的key,但是如果你的Parse Server中没有设置这个key,那么你可以传入null这个参数。

第三个参数是您要查找的参数,这里是您放置主密钥的位置。像这样:

Parse.initialize('appId', null, 'master key')

完成此操作后,所有需要主密钥的 API 调用aggregate都会自动使用它。


推荐阅读