I found another problem!! if you do this: mongo.user.insert(name='Jim', age=18, city='Detroit') mongo.user.insert(name='Jack', age=18)
and then select users = mongo(mongo.user.age==18).select() you don't have the field "city" in one of the rows, so you get this error: users = mongo(mongo.user.age==18).select() File "/opt/web2py/gluon/dal.py", line 8123, in select return adapter.select(self.query,fields,attributes) File "/opt/web2py/gluon/dal.py", line 4700, in select return processor(rows,fields,colnames,False) File "/opt/web2py/gluon/dal.py", line 1681, in parse self.parse_value(value, fields[j].type,blob_decode) File "/opt/web2py/gluon/dal.py", line 1575, in parse_value return self.parsemap[key](value,field_type) File "/opt/web2py/gluon/dal.py", line 1641, in parse_id return int(value) ValueError: invalid literal for int() with base 10: 'Jack' On Thursday, May 10, 2012 10:16:32 PM UTC+1, Francisco Costa wrote: > > Just add a '\' at the end of line 4664 and your are done! > > Great job Massimo! > > > On Thursday, May 10, 2012 9:12:48 PM UTC+1, Massimo Di Pierro wrote: >> >> This helps. I have another attempt to fix this in trunk. Hard to test it >> since I do not have mongodb installed. >> >> On Thursday, 10 May 2012 08:39:22 UTC-5, Francisco Costa wrote: >>> >>> Still not working. I think Fields order is wrong. >>> >>> At the end of the select() function I write this: >>> >>> a = [] >>> for f in fields: >>> a.append(f.type) >>> return dict(rows=rows, fields=a, colnames=colnames) >>> >>> and I got this: >>> >>> colnames: >>> city >>> age >>> _id >>> name >>> fields: >>> id >>> text >>> integer >>> string >>> rows: >>> Toronto >>> 66L >>> 24652490551171733682233802752L >>> John >>> >>> >>>