def build_mongo_pages_query(input=None):
    """
    Builds a mongo query to look up documents from the given cursor.
    """
    result, hits = {}, {}
    result['$or'] = []

    if len(input) > 1:
        for word in input:
            for url in input[word]:
                result['$or'].append({'url':url})
                for word_number in input[word][url]:
                    if hits.get(url):
                        hits[url].append(word_number)
                    else:
                        hits[url] = [word_number]
        for key in hits:
            hits[key] = helpers.remove_duplicate_numbers(hits[key])
        result['$or'] = helpers.remove_duplicate_dictionaries(result['$or'])
    else:
        for search_word in input:
            for url in input[search_word]:
                hits[url] = input[search_word][url]
                result['$or'].append({'url':url})

    return result, hits
 def test_remove_duplicate_dictionaries(self):
     """
     Compares list with duplicate dictionaries to a known list of the
     distinct dictionaries in the former list.
     """
     self.input = [{"item a": 1},{"item b":3},{"item a":1},{"item b":2}]
     self.expected_output = [{"item b": 2},{"item b":3},{"item a":1}]
     self.result = helpers.remove_duplicate_dictionaries(self.input)
     self.assertEqual(self.result, self.expected_output), "helpers.remove_duplicate_dictionaries is not removing duplicate dictionaries."