     check callback, Match.Optional Match.OneOf Function, null
 
     @check query
-    uid = Package.sha.SHA256 query
+    uid = Package.sha.SHA256 query + JSON.stringify opts
     cached = Meteor.neo4j.cacheCollection.find uid: uid
     if cached.fetch().length == 0 or @isWrite(query)
       if Meteor.isServer

        _cmn = if methodName.indexOf('Neo4jReactiveMethod_') isnt -1 then methodName.replace 'Neo4jReactiveMethod_', '' else methodName
        _query = query.call opts

        uid = Package.sha.SHA256 _query
        if collectionName
          self.query _query, opts, (error, data) ->
            throw new Meteor.Error '500', "[Meteor.neo4j.methods]", error if error


    cursor = collection.find {}
    getLabels = (doc) ->
      return switch
        when _.isObject(doc) and !!doc.__labels and doc.__labels.indexOf(':') is 0 then doc.__labels
        when _.isArray doc
          labelsArr = (record.__labels for record in doc when _.has record, '__labels')
          labelsArr = _.uniq labelsArr
          labelsArr.join ''
        else
          ''

    if Meteor.isServer
      cursor.observe
