database - БД

Database

class database.Database(**kwargs)

База данных

Возбуждает исключения:

Принимаемые параметры:

>>> import pymongo
>>> connection = pymongo.MongoClient()
>>> db = connection.my_db
>>> db2 = connection['my_db']
client

Возвращает клиента БД

codec_options

Соотвествующее значение, только для чтения

incoming_copying_manipulators

All incoming SON copying manipulators installed on this instance.

incoming_manipulators

All incoming SON manipulators installed on this instance.

name

Название БД

outgoing_copying_manipulators

List all outgoing SON copying manipulators installed on this instance.

outgoing_manipulators

List all outgoing SON manipulators installed on this instance.

read_preference

Соотвествующее значение, только для чтения

system_js

pymongo.database.SystemJS, хелпер для БД

write_concern

Соотвествующее значение, только для чтения

add_user(**kwargs)

Добавляет нового пользователя.

http://docs.mongodb.org/manual/reference/privilege-documents

  • name - имя пользователя
  • password - необязательно, пароль. Не используется с userSource
  • read_only- необязательно, пользователь может только читать
  • userSource -
  • otherDBRoles
  • roles

Note

есили пользователь существует, меняет ему пароль

authenticate(kwargs)

Авторизация

  • name - имя пользователя
  • password - необязательно, пароль пользователя. Не используется с GSSAPI или MONGODB-X509 авторизации.
  • source - необязательно, БД на которой происходит авторизация
  • mechanism - необязательно, механизмы авторизации, pymongo.auth.MECHANISMS
  • authMechanismProperties - необязательно, специфичные параметры для механизма авторизации

Возбуждает исключения:

  • :py:class::pymongo.errors.PyMongoError
collection_names(include_system_collections=True)

Возвращает список, коллекции БД.

command(kwargs)

Вызывает команду MongoDB. Отправляет запрос в MongoDB и возвращает ответ.

  • command - команда.

    Может быть представлена строкой

    >>> db.command('buildinfo')
    # {buildinfo: 1}
    >>> db.command('collstats', collection_name)
    # {collstats: collection_name}
    >>> db.command('filemd5', object_id, root=file_root)
    # {filemd5: object_id, root: file_root}
    

    Или словарем, тогда она уйдет такой какая есть

    >>> db.command({'collstats': 'collection_name'})
    
  • value - необязательно, значение используемой командой

  • check - необязательно, проверить ответ на ошибки

  • allowable_errors - если check=True то ошибки из этого списка игнорируются

  • read_preference - читает предпочтения для текущего операции

  • codec_options

create_collection(kwargs)

Возвращает коллекцию pymongo.collection.Collection

  • name - название коллекции
  • codec_options - необязательное, bson.codec_options.CodecOptions
  • read_preference - необязательное, настрйока чтения
  • write_concern - необязательное, pymongo.write_concern.WriteConcern
  • size - начальный размер коллекции в байтах.
  • capped - булево, ограниченная коллекция
  • max - максимальное количество объектов в коллекции

Возбуждает исключения:

  • :py:class::pymongo.errors.CollectionInvalid
current_op(include_all=False)

Возвращает информацию о текущих операциях

dereference(kwargs)

Разименовывает ссылку

drop_collections(collection_name)

Очищает коллекцию

>>> db.drop_collections('users')
eval(code, *args)

Исполняет JS код в БД

Возбуждает исключения:

  • :py:class::pymongo.errors.OperationFailure
get_collection(name, codec_options=None, read_preference=None, write_concern=None)

Возвращает коллекцию pymongo.collection.Collection с указанными настройками.

  • name - название коллекции
  • codec_options - опционально, bson.codec_options.CodecOptions, если None то используется значение из БД
  • read_preference - опционально, настройки чтения, если None то используется значение из БД
  • write_concern - опционально, pymongo.write_concern.WriteConcern, правила записи, если None то используется значение из БД
>>> db.read_preference
Primary()
>>> coll1 = db.test
>>> coll1.read_preference
Primary()
>>> from pymongo import ReadPreference
>>> coll2 = db.get_collection(
...     'test', read_preference=ReadPreference.SECONDARY)
>>> coll2.read_preference
Secondary(tag_sets=None)
logout()

Разавторизация.

profiling_info()

Возвращает список с информацией о профилировщике

profiling_level()

Возвращает уровень логирования БД:

remove_user(user_name)

Удаляет пользователя из БД

set_profiling_level(level, slow_ms=None)

Устанавливает уровень профилирования БД.

  • level - уровень

  • slow_ms - время работы запроса, по истечении которого он все равно запишется в журнал

validate_collection(name_or_collection, scandata=False, full=False)

Валидация коллекции.

Возвращает словарь, с информацией по валидации

  • name_or_collection - название или сама коллекция
  • scandata - выполнить доп проверки
  • full - более полная валидация

SystemJS

class database.SystemJS(database)

Позволяет манипулировать серверным JS кодом.

Создавать экземпляр класса нет необходимости, т.к. он уже существует в самой БД pymongo.database.Database.system_js

>>> db.system_js.add1 = "function (x) { return x + 1; }"
>>> db.system.js.find({"_id": "add1"}).count()
1
>>> db.system_js.add1(5)
6.0
>>> del db.system_js.add1
>>> db.system.js.find({"_id": "add1"}).count()
0
list()

Вовзращает список имен функции БД