GraphQL关系解析器

时间:2018-12-14 10:21:41

标签: mongodb graphql return-value relation mutation

我想写一个变体,在创建跟踪器时,请输入相应跟踪器模型和用户的跟踪器模型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
      },
    },

2 个答案:

答案 0 :(得分:0)

尝试一下

1)删除return us && tm

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

3)返回数组:return results

答案 1 :(得分:0)

谢谢,我尝试了所有这些方法,但是没有用。

但是现在,我自己找到了答案,这可行:

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