title: Storing some small (under 1MB) files with MongoDB in NodeJS WITHOUT GridFS
body: <p>I run a website that runs on a backend of nodeJS + mongoDB. Right now, I'm implementing a system to store some icons (small image files) that will need to be in the database.</p>
  
  <p>From my understanding, it makes more sense NOT to use GridFS, since that seems to be tailored for either large files or large numbers of files. Since every file that I need to save will be well under the BSON maximum file size, I should be able to save them directly into a regular document. </p>
  
  <p>I have 2 questions:</p>
  
  <p>1) Is my reasoning correct? Is it ok to save image files within a regular mongo collection, as opposed to with GridFS? Is there anything I'm not considering here that I should be?</p>
  
  <p>2) If my thought process is sound, how do I go about doing this? Could I do something like the following:</p>
  
  <pre><code>//assume 'things' is a mongoDB collection created properly using node-mongodb-driver
  
  fs.readFile(pathToIconImage, function(err,image){
    things.insert({'image':image}, function(err,doc){
      if(err) console.log('you have an error! ' + err);
    });
  });
  </code></pre>
  
  <p>I'm guessing that there's probably a better way to do this, since mongoDB uses BSON and here I'm trying to save a file in JSON before I send it off to the database. I also don't know if this code will work (haven't tried it). </p>
  
  <p><strong>UPDATE - New Question</strong></p>
  
  <p>If I have a document within a collection that has three pieces of information saved: 1) a name, 2) a date, and 3) an image file (the above icon), and I want to send this document to a client in order to display all three, would this be possible? If not, I guess I'd need to use GridFS and save the fileID in place of the image itself. Thoughts/suggestions?</p>
  
  <p>Best, and thanks for any responses,<br>Sami</p>