PJo336,
Like others have mentioned, its usually a matter of looking at how you're going to query the data.
So in your case users, teams, and projects are all entities that you'll want to be able to query for separately. The only real thing you'll need are the id links so you can do like Candybar said and query for something like all projects for a specific user.
So as an example you'll probably want to query for your user on almost every request. You may need this for authorization, or you may want to display user's name/email in a header, or whatever. But you probably only need all of the user's projects on a page where you list those. So it doesn't make a ton of sense to embed the project details in the user. I'd remove projects entirely from the user and team and put create_date, user_id, and team_id on the project.
Notice that a good case for embedding would be a field like user preferences where you had a map of specific preference keys to preference values for a user (ex. {'posts_per_page':50, 'show_when_active':false, ...}). That's information that you're going to want on most pages and it makes sense to keep it with the user object.
Quote:
Originally Posted by candybar
Btw, if you're starting out and don't have a good feel for what's best, I wouldn't worry too much, just try something out and you will learn the pros and cons if you pay attention to how the design affects things later.
And in the end this is correct. Remember that one of your advantages with Mongo is that changing schemes isn't all that painful.