code: public T findUniqueUsingQueryModel(QueryModel queryModel)
              throws NoSuchItemException, TooManyItemsException, JeppettoException {
          // Need to revisit te way caching works as it will miss some items...focus only on the identifyingQuery
          // instead of secondary cache keys...
          MongoDBCommand command = buildCommand(queryModel, AccessType.Read);
  
          if (MongoDBSession.isActive()) {
              // noinspection unchecked
              T cached = (T) MongoDBSession.getObjectFromCache(dbCollection.getName(), command.getQuery());
  
              if (cached != null) {
                  DBObject identifyingQuery = buildIdentifyingQuery((DBObject) cached);
  
                  MongoDBSession.trackForSave(this, identifyingQuery, cached, createIdentifyingQueries((DBObject) cached));
  
                  return cached;
              }
          }
  
          // noinspection unchecked
          T result = (T) command.singleResult(dbCollection);
  
          ((DirtyableDBObject) result).markPersisted(dbCollection);
  
          if (MongoDBSession.isActive()) {
              DBObject identifyingQuery = buildIdentifyingQuery((DBObject) result);
  
              MongoDBSession.trackForSave(this, identifyingQuery, result, createIdentifyingQueries((DBObject) result));
          }
  
          return result;
      }
docs: -------------------------------------------------------------