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