No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mongodb_datasource.py 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # -*- coding: utf-8 -*-
  2. import pymongo
  3. from pymongo import MongoClient
  4. import urllib
  5. # TODO Positionner cette variable dans les settings
  6. DEFAULT_CONNECTION = {
  7. 'host': 'localhost',
  8. 'port': 27017,
  9. 'login': 'login', # TODO modifier la valeur
  10. 'password': 'password', # TODO modifier la valeur
  11. 'dbname': 'lodel'
  12. }
  13. class MongoDbDataSource(object):
  14. def __init__(self, module=pymongo, connection_args=DEFAULT_CONNECTION):
  15. connection_string = 'mongodb://%s:%s@%s:%s' % (connection_args['login'],
  16. urllib.quote_plus(connection_args['password']),
  17. connection_args['host'],
  18. connection_args['port'])
  19. self.connection = MongoClient(connection_string)
  20. self.database = self.connection[connection_args['dbname']]
  21. def insert(self):
  22. pass
  23. def select(self):
  24. pass
  25. def update(self):
  26. pass
  27. def delete(self, target_cls, uid):
  28. uidname = target_cls.uidname
  29. collection_name = target_cls.collection_name
  30. result = self.database[collection_name].delete_many({uidname: uid})
  31. return result.deteled_count