def get_user_keyword_frequency_distinct_userids(): """ :return: Distinct user ids. """ collection = yield db.get_user_keyword_frequency_collection() return_value = yield collection.distinct(key='user_id') defer.returnValue(return_value)
def get_user_keyword_frequency_iter(user_id): """ :param user_id: :return: Iterable user keyword frequency collection. """ collection = yield db.get_user_keyword_frequency_collection() defer.returnValue(QueryIterator(collection.find({'user_id': user_id}, cursor=True)))
def delete_user_keyword_frequency(_id): """ Remove user keyword documents. :param _id: Mongo document _id. :return: """ collection = yield db.get_user_keyword_frequency_collection() return_value = yield collection.delete_one({'_id': _id}) defer.returnValue(return_value)
def get_user_keyword_frequency(user_id, keyword): """ :param user_id: :param keyword: :return: One use keyword frequency document. """ collection = yield db.get_user_keyword_frequency_collection() return_value = yield collection.find_one({'keyword': keyword, 'user_id': user_id}) defer.returnValue(return_value)
def set_user_keyword_frequency_updated_flag(updated=False): """ Set/update the 'updated' flag in user keyword frequency document. :param updated: Flag value (True/False) :return: """ collection = yield db.get_user_keyword_frequency_collection() return_value = yield collection.update_many({}, {"$set": {"updated": updated}}) defer.returnValue(return_value)
def update_user_keyword_frequency(user_id, keyword, frequency, updated=True): """ Create or update user keyword frequency document. :param user_id: :param keyword: :param frequency: :param updated: :return: """ collection = yield db.get_user_keyword_frequency_collection() return_value = yield collection.replace_one({ 'keyword': keyword, 'user_id': user_id }, { 'keyword': keyword, 'user_id': user_id, 'frequency': frequency, 'updated': updated }, upsert=True) defer.returnValue(return_value)