【问题标题】:MongoDB find after aggregation in GraphqlMongoDB在Graphql中聚合后查找
【发布时间】:2020-04-14 21:35:57
【问题描述】:

我想查找具有最新日期时间值的文档。

我打算使用聚合来查找最新的日期时间。然后使用 datetime 的值查找文档列表。

这是我的解析器函数:

propertys_for_sell_latest:{
            type: new GraphQLList(sellType),
            args:{},
            resolve(parent, args){
                sell.aggregate([
                    {$project:{_id:0,DateTime:1}},
                    {$sort:{DateTime:-1}},
                    {$limit:1}
                ]).exec((err, latest) => {
                    if (err) throw err;
                    console.log(latest[0])
                    sell.find(latest[0])
                })

            }
        }

结果是没有。

我对 Graphql 和 Javascript 非常陌生。请帮忙。

【问题讨论】:

    标签: mongoose graphql


    【解决方案1】:

    我可以使用 async 和 await 创建两个函数。

    async function getLatestDate(model){
        const latest = await model.aggregate([
            {$project:{_id:0,DateTime:1}},
            {$sort:{DateTime:-1}},
            {$limit:1}
        ])
        return latest[0]
    }
    
    async function propertys_latest(model){
        const result = await getLatestDate(model)
        return model.find(result)
        }
    

    然后在根查询中使用它

    propertys_for_sell_latest:{
            type: new GraphQLList(sellType),
            args:{},
            resolve:(parent, args) => propertys_latest(sell)
        }
    

    其实我也不太清楚原因。

    【讨论】:

      猜你喜欢
      • 2017-09-22
      • 1970-01-01
      • 2017-05-05
      • 2017-07-19
      • 1970-01-01
      • 2020-10-01
      • 2018-08-25
      • 2022-01-03
      • 2017-11-08
      相关资源
      最近更新 更多