When performing a QueryStream on a Model such as
User.find({}).stream().on('data', (user) => {
    request.post(someOptions, (error, response, body) => {
         if(!error && response.statusCode === 200) {
             user.someProperty = body.newValue;
             user.save((err) => {
                 if (err) console.log(err)
             });
         } else {
             console.log(error);
             console.log(response);
         }
}).on('end', () => {
    console.log('all users have new values');
});
I'm receiving the console output for the end event and then receiving an error:
all users have new values
TypeError: user.save is not a function
    at Request._callback
I'm assuming this means that the request.post function is running one too many times, as I tried to do this without a stream and simply a
.find({} (err, users) => {
     for(user in users) {
         request.post...
     } 
});
but this was returning a bad status code from the api I'm posting to as request.post() was sending an undefined value in the options I'm passing that I get from the user document, even though all the documents do have defined values. Although, I wasn't receiving a error for save not being a function. 
Can anyone shed some light on what's happening?
 
                        
Here's a simplified version assuming you don't need
stream(which should be swapped out forcursor) and you haverequest-promise-nativeavailableFrom the code it looks like you're making the same
postand updating the same value of everyuser. If that is the case, why not: