mongodb - 如何将 {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。
解决方案
您必须在 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
都会自动使用它。
推荐阅读
- vue.js - 如何 v-for 循环数据,但根据模型的输入显示它
- node.js - 在 Google Cloud Functions 中写入文件后找不到文件
- javascript - 需要在 OnClientClick 之前执行 OnClick 事件
- java - 模拟辅助方法的返回值
- php - 无法在主机上连接我的数据库
- php - 给定一个复杂的 PHP 对象层次结构,我可以确定表示属性路径的字符串是否存在?
- javascript - 如何在 reactjs 中使用引导弹出框
- leaflet - 我可以在传单 geoJSON 中动态更改 features.properties.{some property name} 中的属性吗
- android - RecyclerView 对话框中的图像
- android - FirebaseListAdapter 空视图