我正在开发一个非常简单的应用程序作为将 MongoDB 与 web2py 集成的用例。在应用程序的一个部分,我有兴趣返回产品列表:
我的数据库表:
db.define_table('products',
Field('brand', label='Brand'),
Field('photo', label='Photo'),
...
Field('options', label='Options'))
我的控制器:
def products():
qset = db(db['products'])
grid = qset.select()
return dict(grid=grid)
我的观点:
{{extend 'layout.html'}}
<h2>Product List</h2>
{{=grid}}
产品退回没有问题。但是,products._id 字段以“26086541625969213357181461154”形式返回值。如果我切换到 shell(或 python)并尝试根据这些 _id 查询我的数据库,我找不到任何产品。
如您所料,数据库中的 _id 是 ObjectId,类似于“544a481b2ceb7c3093a173a2”。我希望我的视图返回 ObjectIds 而不是长字符串。很简单,但我遇到了麻烦。