def get_by_slug(self, slug): city = City.find_one({"slug": slug}) country = city.relation_set.country return { "city": city, "country": country, }
def get_by_slug(self, slug): city = City.find_one({"slug": slug}) country = city.relation_set.country return { "city": city, "country": country, }
def post_migrate(): """ Post-migration phase: index generations, cross-document relationships. """ for country in Country.find(): country['capital_city'] = City.find_one({ 'old_pk': country['old_capitalcity_pk']})._id del country['old_capitalcity_pk'] country.save() for cls in (City, Country, Region): cls.generate_index(cls.collection)
def post_migrate(): """ Post-migration phase: index generations, cross-document relationships. """ for country in Country.find(): country['capital_city'] = City.find_one({ 'old_pk': country['old_capitalcity_pk'] })._id del country['old_capitalcity_pk'] country.save() for cls in (City, Country, Region): cls.generate_index(cls.collection)
def migrate_city(entry): """ Migration of a JSON-represented city. """ corresp_map = { 'wikiname': entry['fields']['wikiname'], 'slug': entry['fields']['slug'], 'name': entry['fields']['name'], 'rankings': [ float(entry['fields']['rating_factor_%d' % idx]) for idx in xrange(1, 4) ], 'timezone': u'UTC%s%d' % (u'' if entry['fields']['timezone'] < 0 else u'+', entry['fields']['timezone']), 'total_ranking': float(entry['fields']['total_rating']), 'coordinates': [ float(entry['fields']['latitude']), float(entry['fields']['longitude']) ], 'country': Country.find_one({ 'old_pk': entry['fields']['country'] })._id, } additional_corresp_map = { 'old_pk': entry['pk'], } city = City.find_one({'old_pk': entry['pk']}) if not city: city = City() city.set_lang("en") for k, v in corresp_map.iteritems(): setattr(city, k, v) for k, v in additional_corresp_map.iteritems(): city[k] = v city.save() return city
def migrate_city(entry): """ Migration of a JSON-represented city. """ corresp_map = { 'wikiname': entry['fields']['wikiname'], 'slug': entry['fields']['slug'], 'name': entry['fields']['name'], 'rankings': [float(entry['fields']['rating_factor_%d' % idx]) for idx in xrange(1, 4)], 'timezone': u'UTC%s%d' % ( u'' if entry['fields']['timezone'] < 0 else u'+', entry['fields']['timezone']), 'total_ranking': float(entry['fields']['total_rating']), 'coordinates': [float(entry['fields']['latitude']), float(entry['fields']['longitude'])], 'country': Country.find_one({ 'old_pk': entry['fields']['country']})._id, } additional_corresp_map = { 'old_pk': entry['pk'], } city = City.find_one({'old_pk': entry['pk']}) if not city: city = City() city.set_lang("en") for k, v in corresp_map.iteritems(): setattr(city, k, v) for k, v in additional_corresp_map.iteritems(): city[k] = v city.save() return city
from triplander.models import City city = City.find_one({"slug": "groningen"}) point = city.coordinates distance = 20 City.set_lang("en") for c in City.find_nearby("coordinates", point, distance): print "1", c.name for c in City.find_prefix("name", "gro"): print "2", c.name