【发布时间】:2021-03-28 23:29:18
【问题描述】:
我正在尝试对 GraphQl 中的查询返回的一些数据进行排序。我正在运行 Meteor/React/Apollo/Graphql 堆栈,这一行允许我在解析器 resolvers.js 中获取数据库中的所有数据:return database.find({}) 我想在服务器端按“名称”对其进行排序" 字段,根据文档和到目前为止我在网上找到的所有其他内容,return database.find({}).sort({name:1}) 应该已经删除了它,但它实际上并没有返回任何东西,我似乎无法弄清楚为什么,什么也没有出现我的控制台并没有抛出任何错误,因此我相信它只是 null 或空。
在我的 Robo3T 控制台中,我可以运行 database.find({}).sort({name:1}),我可以看到实际正在排序的数据。根据docs,我认为这可能是由于Node implementation,所以我尝试了sort([["name",1]]),但也没有成功,我不太确定该怎么做。
如果没有办法做到这一点 - 我应该只依赖客户端排序吗?它的条目并不多,
尽管如此,我还是想问这个问题,即使在我的数据库中对它进行一次排序就足以应对这种特定情况,否则我将如何在解析器中对数据进行排序,因为在其他情况下我需要这样做?
谢谢!
编辑 - 这就是我所拥有的:
export default {
Query: {
test_query(obj, args, context) {
// Bottom line is output
console.log("test1");
console.log(Database.find({}).sort({name:1}));
// Bottom line is not output
console.log("test2");
return Database.find({});
},
}
EDIT2:我的数据库定义为Database = new Mongo.Collection("db_name")
【问题讨论】:
-
@xadm 是的,我尝试在返回之前登录,但什么也没有。没有异步/等待。我需要那些吗?我用更多代码更新了帖子,以将其放入上下文中。
-
啊,本机.... IDK,但日志会有所帮助;)
-
您能否分享定义和初始化
Database的代码?是流星收藏吗?
标签: reactjs mongodb meteor graphql apollo