So I have this: import sys import time from gluon.dal import DAL, Field mongo = DAL('mongodb://localhost:27017/tymr') mongo.define_table('user', Field('name', 'text'), Field('age', 'integer'), Field('city', 'string') )
def insert_users(): mongo.user.insert(name='John', age=66, city='Toronto') mongo.user.insert(name='Mark', age=43, city='Boston') mongo.user.insert(name='Tom', age=43, city='Detroit') mongo.user.insert(name='Jim', age=18, city='Detroit') mongo.user.insert(name='Jack', age=18) mongo.user.insert(name='Eric', city='Boston') return 'users in database' def find_users(): users = mongo(mongo.user.age==66).select() return dict(users=users) after I run *insert_users* I check in MongoDb via terminal and everything is correct: > db.user.find() { "_id" : ObjectId("4fa80feea34feb34f8000000"), "city" : "Toronto", "age" : NumberLong(66), "name" : "John" } { "_id" : ObjectId("4fa80feea34feb34f8000001"), "city" : "Boston", "age" : NumberLong(43), "name" : "Mark" } { "_id" : ObjectId("4fa80feea34feb34f8000002"), "city" : "Detroit", "age" : NumberLong(43), "name" : "Tom" } { "_id" : ObjectId("4fa80feea34feb34f8000003"), "city" : "Detroit", "age" : NumberLong(18), "name" : "Jim" } { "_id" : ObjectId("4fa80feea34feb34f8000004"), "age" : NumberLong(18), "name" : "Jack" } { "_id" : ObjectId("4fa80feea34feb34f8000005"), "city" : "Boston", "name" : "Eric" } but when I run *find_users* I get this error: File "/opt/web2py/gluon/dal.py", line 7578, in select return adapter.select(self.query,fields,attributes) File "/opt/web2py/gluon/dal.py", line 4290, in select return self.parse(rows,fields,mongofields_dict.keys(),False) File "/opt/web2py/gluon/dal.py", line 1600, in parse self.parse_value(value, fields[j].type,blob_decode) File "/opt/web2py/gluon/dal.py", line 1496, in parse_value return self.parsemap[key](value,field_type) File "/opt/web2py/gluon/dal.py", line 1562, in parse_id return int(value) ValueError: invalid literal for int() with base 10: 'Toronto'