Пример #1
0
 def get_by_slug(self, slug):
     city = City.find_one({"slug": slug})
     country = city.relation_set.country
     return {
         "city": city,
         "country": country,
     }
Пример #2
0
 def get_by_slug(self, slug):
     city = City.find_one({"slug": slug})
     country = city.relation_set.country
     return {
         "city": city,
         "country": country,
     }
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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