Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 11 06:41

    lig on pip

    (compare)

  • May 11 06:41

    lig on master

    Bump py from 1.8.0 to 1.10.0 (#… (compare)

  • May 11 06:41
    lig closed #17
  • Apr 20 18:39
    dependabot[bot] labeled #17
  • Apr 20 18:39
    dependabot[bot] opened #17
  • Apr 20 18:39

    dependabot[bot] on pip

    Bump py from 1.8.0 to 1.10.0 B… (compare)

  • Nov 19 2019 02:11

    lig on master

    💄 Update mnj logo (compare)

  • Nov 19 2019 01:29

    lig on master

    📝 Update `README.md` (compare)

  • Nov 19 2019 01:09

    lig on master

    🔖 Bump version to 1.0.0a3 ✅ Blend all tests unders `./tes… (compare)

  • Nov 13 2019 08:15

    lig on 1.0.0a3

    🔖 Bump version to 1.0.0a3 (compare)

  • Nov 13 2019 08:13

    lig on master

    📦 Add all needed packages in `… (compare)

  • Nov 06 2019 14:56

    lig on master

    🐛 Fix `Query.__getattribute__`… (compare)

  • Nov 05 2019 00:52

    lig on 1.0.0a2

    (compare)

  • Nov 05 2019 00:52

    lig on master

    🔖 Bump version to 1.0.0a2 (compare)

  • Nov 05 2019 00:50

    lig on master

    ✅ Reintegrate all tests (compare)

  • Nov 04 2019 23:51

    lig on master

    🐳 Use newest Fedora base for t… ♻ Reintegrate query operators (compare)

  • Nov 04 2019 16:41

    lig on master

    Allow multiple subclasses to ut… (compare)

  • Nov 01 2019 12:03

    lig on 1.0.0a1

    (compare)

  • Nov 01 2019 12:02

    lig on v0.3.0

    (compare)

  • Nov 01 2019 12:02

    lig on v0.2dev1

    (compare)

Vitaly Sotnikov
@VeeSot
Доброго времени суток.
Рассматривал свои записки с PyCon 2015 и решил взглянуть на Mongo Energy.Так и не понял,что она умеет,чего нет в MongoEngine?
Да,минималистичная обертка над MongoClient,но функционал кажется бедноватым.
Serge Matveenko
@lig
Привет! Mnj не должна уметь что-то, чего не умеет MongoEngine. По одно просто причине, MongoEngine умеет не то.
Mnj умеет не мешать работать PyMongo. И это очень важно!
Vitaly Sotnikov
@VeeSot
Окей.Тогда иной вопрос,если читать примеры то сперва мы делаем
db.docs.drop()
Потом
db.docs.insert(Doc([('a', 1), ('b', 1)]))
и потом уже ищем.А если уже есть некая схема которую дропать как бы не хочется - nmj - будет работать с ней?Если будет - то в каком режиме?
Я не придираюсь,мне реально интересно и хочу заюзать в своем проекте рядом с Flask.Но опять же - если для использования всего заложеного функционала нужно дропать базу - это перебор.
На той же PyCon2015 говорили о PonyORM которая навешивается сверху вместо стандартной джанговской ОРМ и дает чуток больше возможностей для запросов с уже существующей БД.
К синтаксису есть конечно вопросы поскольку кажется что b_gt=(3) более логично чем b=_gt(3) (просто по математическим канонам идет >= а не =>.
Но вопрос основной в другом - что вообще может дать mnj?То есть документации толком то и нету =(
Serge Matveenko
@lig
Это пример. Я понял, что он пугает, уберу дроп;) Это просто копия из того, что делает python -m mnj
Там уже готовится ветка с новым синтаксисом и фичами.
Прежде всего Mnj - не ORM, а хелпер для PyMongo и я уже в ветке выпилил даже собственный клиент
т.е. вот всё что тут есть, оно преобразуется в обычные, ну почти, словари для обычных, самых обычных, запросов в монгу через PyMongo
Т.е. можно и по старой базе и вперемешку и по очереди использовать и синтаксис со словарями и текстовыми ключами и операторы Mnj
Serge Matveenko
@lig
теперь будет не _gt, таки gt_ и b=gt_(3) - это НЕ больше или равно, это просто больше, равно здесь аналогично джанге используется, для предачи параметра. Т.е читать надо так: я хочу чтобы b ключ "b" = был gt_ больше ( чем 3 число 3 ) тчк
На той же PyCon2015 говорили о PonyORM которая навешивается сверху вместо стандартной джанговской ОРМ и дает чуток больше возможностей для запросов с уже существующей БД.
  1. рядом, а не сверху
  2. чуток меньше возможностей, просто код короче
Serge Matveenko
@lig

Но вопрос основной в другом - что вообще может дать mnj?То есть документации толком то и нету =(

главное и основное - автокомплит запрос и проверку их синтаксиса на лету - это основная задача
причем исключительно в режиме в обе стороны совместимом с PyMongo
т.е. можно так (я использую грядущий синтаксис): db.find(q(a=2, {'b': {'$gt': 3}}))

это найти документы, где a=2 и b>3

можно сравнить этот запрос в виде чистого PyMongo и в Mnj:

PyMongo:
db.find({'a': 2, 'b': {'$gt': 3}})

Mnj:
db.find(q(a=2, b=gt_(3)))

а дальше как удобней, так и пиши, старый код можно менять постепенно
Serge Matveenko
@lig
а теперь попробуй написать запрос db.find(q(a=2) | q(a=3)) на PyMongo :)
Serge Matveenko
@lig
ну и тут везде не db.find, а db.docs.find, понятно
Serge Matveenko
@lig
Feel free to speak English here. We accept Russian also but everybody will be thankful for inline English translation.
Serge Matveenko
@lig
Incase if you haven't noticed yet there is pre-release snapshots of mnj 1.0.0on PyPI https://pypi.org/project/mnj/#history