public BSONObject getStats() {
    BSONObject response = new BasicBSONObject("ns", getFullName());
    response.put("count", Integer.valueOf(documents.size()));
    response.put("size", Long.valueOf(dataSize.get()));

    double averageSize = 0;
    if (!documents.isEmpty()) {
      averageSize = dataSize.get() / (double) documents.size();
    }
    response.put("avgObjSize", Double.valueOf(averageSize));
    response.put("storageSize", Integer.valueOf(0));
    response.put("numExtents", Integer.valueOf(0));
    response.put("nindexes", Integer.valueOf(indexes.size()));
    BSONObject indexSizes = new BasicBSONObject();
    for (Index index : indexes) {
      indexSizes.put(index.getName(), Long.valueOf(index.getDataSize()));
    }

    response.put("indexSize", indexSizes);
    Utils.markOkay(response);
    return response;
  }