title: Mongo: projection not affecting booleans
body: <p>Something I've noticed is that I can set the projection to not return my <code>username</code> or <code>userID</code> strings with out a problem. However, when trying to not return the <code>deactivated</code> or <code>admin</code> boolean, they still appear even when the other strings wont?</p>
  <pre><code>    user := model.User{}
      filter := bson.D{
          {
              Key:   &quot;_id&quot;,
              Value: userID,
          },
      }
      projection := bson.D{
          {
              Key:   &quot;password&quot;,
              Value: 0,
          },
          {
              Key:   &quot;username&quot;,
              Value: 0,
          },
          {
              Key:   &quot;_id&quot;,
              Value: 0,
          },
          {
              Key:   &quot;deactivated&quot;,
              Value: 0,
          },
          {
              Key:   &quot;admin&quot;,
              Value: 0,
          },
      }
      options := options.FindOne().SetProjection(projection)
      _ = usersCol.FindOne(ctx, filter, options).Decode(&amp;user)
  </code></pre>
  <p><code>&amp;{ false false   [0xc00028d180] 0xc0002b0900 0xc0002bdce0 &lt;nil&gt;}</code></p>
  <pre><code>type User struct {
      ID           string          `json:&quot;id&quot; bson:&quot;_id&quot;`
      Admin        bool            `json:&quot;admin&quot;`
      Deactivated  bool            `json:&quot;deactivated&quot;`
      Username     string          `json:&quot;username&quot;`
      Password     string          `json:&quot;password&quot;`
      ...
  }
  </code></pre>