我的 Web 应用程序使用 python 和 pyMongo 在 MongoDB 上运行。我经常遇到这种情况 - 代码如下:
from pymongo import Connnection
users = Connection().db.users
def findUsers(firstName=None, lastName=None, age=None):
criteria = {}
if firstName:
criteria['firstName'] = firstName
if lastName:
criteria['lastName'] = lastName
if age:
criteria['age'] = age
query = users.find(criteria)
return query
if
我发现我需要为每个可选的值声明是否需要进入搜索条件的那种混乱。如果只有一个特殊的查询值被 mongo 在查询中忽略。然后我的代码可能如下所示:
def findUsers(firstName=<ignored by mongo>, lastName=<ignored by mongo>, age=<ignored by mongo>):
query = users.find({'firstName':firstName, 'lastName':lastName, 'age':age})
return query
现在不像以前那么干净了,特别是如果你有更多的可选参数。任何未指定的参数都默认为 mongo 忽略的东西。有没有办法做到这一点?或者至少比我目前拥有的更简洁的东西?