【发布时间】:2014-06-15 13:00:20
【问题描述】:
我正在尝试查询数据集以返回所有列表:字符串项不为空。 我的示例表:
db.define_table('newItems',
Field('name', 'string'),
Field('tasks', 'list:string'))
对 None 的查询如下:
for item in db(db.newItems.tasks != None).select(db.newItems.tasks):
返回:
[]
[]
[u'Wash Dog', u'Mow Yard']
[]
[u'Do X', u'Then do Y']
[]
如何构造查询以使其仅返回:
[u'Wash Dog', u'Mow Yard']
[u'Do X', u'Then do Y']
谢谢
更新:
答案在 sqlite 上测试时有效,但不适用于 mongodb。空列表 [] 作为 '' 传递,会产生错误的结果:
In [4]: db.Tasks.email != []
Out[4]: <Query {'email': {'$ne': ''}}>
mongo 外壳:
> db.Tasks.find().count()
1195 (total records)
> db.Tasks.find({'email': {'$ne': ''}}).count()
1195
正确的查询应该是:
> db.Tasks.find({email: {$ne: [ ] }}).count()
108
这是 mongo dal 中的错误还是有其他方法可以指定空列表?
【问题讨论】:
标签: python web2py data-access-layer