【问题标题】:GraphQL Resolver for Relations关系的 GraphQL 解析器
【发布时间】:2018-12-20 22:24:18
【问题描述】:

我想编写一个突变,在创建跟踪器时,为相应的跟踪器模型和用户输入跟踪器模型 ID 和用户 ID。我的问题与 Resolve 函数中的 return 语句有关:我如何才能在两个函数之后直接执行这两个函数,以便将其写入两个集合中?

这是我的突变。按照目前的写法,只执行第二个变量,在这种情况下只执行“tm”。

createTracker: {
      type: TrackerType,
      args: {
        trackerModelID: {type: GraphQLID },
        userId: {type: GraphQLID },
        access_token: {type: GraphQLString },
      },
      resolve(parent, args){
        let tracker = new Tracker({
          trackerModelID: args.trackerModelID,
          userId: args.userId,
          access_token: args.access_token,
        });
        tracker.save();
        let tm = TrackerModel.updateOne({ _id: args.trackerModelID }, { $push: { trackerIds: tracker._id } });
        let us = User.updateOne({ _id: args.userId }, { $push: { trackerIds: tracker._id } });
        return us && tm
      },
    },

【问题讨论】:

    标签: mongodb graphql return-value relation mutation


    【解决方案1】:

    谢谢你,我尝试了所有这些方法,但没有奏效。

    但现在,我自己找到了答案,这行得通:

    tracker.save();
    return User.updateOne({ _id: args.userId }, { $push: { trackerIds: tracker._id } }).then(() =>{
     return TrackerModel.updateOne({ _id: args.trackerModelID }, { $push: { trackerIds: tracker._id } });
     }
    )

    【讨论】:

      【解决方案2】:

      试一试;

      1) 删除return us && tm

      2) 声明数组:var results = [us , tm];

      3) 返回数组:return results

      【讨论】:

        猜你喜欢
        • 2020-05-07
        • 2021-09-16
        • 2020-03-08
        • 2018-11-25
        • 2019-09-15
        • 2018-09-07
        • 2020-01-18
        • 2019-02-08
        • 2018-08-25
        相关资源
        最近更新 更多