Among a number of other assignments in an express .post call, one .push is run in a forEach(function):
var toUsers = req.body.to; // [ 'user1', 'user2' ]
toUsers.forEach(toLoop);
function toLoop(element, index, array){
    Models.User.findOne({username: element},
        function (err, user) {
            toUserId = user._id;
            console.log('to: ' + element);
            console.log('toUserId: ' + toUserId);
            story.to.push({
                user : toUserId,
                username : element,
                updated : req.body.updated
            });
    });
}
This loop above is running after the .save call though!
story.save(function(err) {
    if (err)
        res.send(err);
    res.json({ message: 'Story Created' });
});
