def test_insert_geo(self): dataset = Dataset('GDS987').populate() Word2Geo.insert_geo(dataset) w2gs = list(Word2Geo.mongo().find({'geo_id': dataset.geo_id})) self.assertEqual(len(w2gs), 249)
def test_insert_geo(self): dataset=Dataset('GDS987').populate() Word2Geo.insert_geo(dataset) w2gs=list(Word2Geo.mongo().find({'geo_id': dataset.geo_id})) self.assertEqual(len(w2gs), 249)
def insert_words(geo, words): ''' geo: GEO object words: dict [k=source (aka 'tag'); v=list of words (maybe with dups)] Creates records with keys [geo_id, word, source, count], adds to db ''' mongo=Word2Geo.mongo() mongo.remove({'geo_id': geo.geo_id}) # remove the record for this geo totals=dict() # k=source, v=count for source, words in words.items(): for word in words: query={'geo_id':geo.geo_id, 'word':word, 'source':source} record=mongo.find_one(query) if record: if 'count' in record: record['count']+=1 else: record['count']=1 else: # record not found, construct it from query: record=query record['count']=1 mongo.save(record) try: totals[source]+=1 except: totals[source]=1 return totals