我在这里的第一篇文章:)
我在我的网站上使用 Flask 和 PyMongo,我希望用户能够过滤数据库结果。开始简单:
基本过滤器将根据价格参数返回结果。如果价格为无,那么我想返回所有结果。
来自 MongoDB 文档:
$or 运算符对包含两个或多个表达式的数组执行逻辑 OR 运算,并选择满足至少一个表达式的文档
price = request.args.get('price')
if price:
price = int(price)
posts = db.collection.find({ '$or' : [
{'price' : {'$lt' : price }},
{'price' : {'$ne' : None }}
]
})
我的想法是,如果价格不是整数(无),$or 运算符将不满足第一个表达式并移至第二个表达式,返回所有不等于无的值。但是,这并没有真正起作用,当参数未通过或错误时,我想不出任何其他方式来显示“所有”结果。
还有一些更广泛的问题 - 如果我想要多个过滤器怎么办?我是否应该使用 $and 运算符为数据库创建一个大查询并操作变量值以获得所需的结果?或者,还有更好的方法?我唯一想到的是每个过滤器的路线,但这听起来不像是可行的。欢迎任何建议!谢谢!
不负相思意
白板的微信
相关分类