driver-legacy/src/main/com/mongodb/DBCollection.java
@Nullable
    public DBObject findOne(@Nullable final DBObject query, @Nullable final DBObject projection, @Nullable final DBObject sort,
                            final ReadPreference readPreference) {
        return findOne(query != null ? query : new BasicDBObject(),
                new DBCollectionFindOptions().projection(projection).sort(sort).readPreference(readPreference));
    }
@Nullable
    public DBObject findOne(@Nullable final DBObject query, @Nullable final DBObject projection, @Nullable final DBObject sort,
                            final ReadPreference readPreference) {
        return findOne(query != null ? query : new BasicDBObject(),
                new DBCollectionFindOptions().projection(projection).sort(sort).readPreference(readPreference));
    }
Get a single document from collection.

@param query          the selection criteria using query operators.
@param projection     specifies which projection MongoDB will return from the documents in the result set.
@param sort           A document whose fields specify the attributes on which to sort the result set.
@param readPreference {@code ReadPreference} to be used for this operation
@return A document that satisfies the query specified as the argument to this method.
@mongodb.driver.manual tutorial/query-documents/ Querying