我的查询如下:
def get_data(self, limit=None):
# I just want to add limit() in case it is set, not otherwise
self.collection.find(condition)
self.collection
指的是班级中的集合。如果limit
参数设置,我需要将limit()
pymongo
函数绑定到查询。
NB:限制只是一个示例,它可以是任何函数,如sort
等等。所以我只想知道是否有一种绑定params的机制?< / p>
答案 0 :(得分:1)
你的意思是这样吗?:
def get_data(self, limit=None):
cursor = self.collection.find(condition)
if limit is not None:
return cursor.limit(limit)
else:
return cursor
答案 1 :(得分:1)
低于2的查询返回相同的结果
self.collection.find()
self.collection.find().sort([("$natural", pymongo.ASCENDING)])
以及2个以下查询返回相同的结果
self.collection.find()
self.collection.find().limit(0)
0
的限制相当于无限制。 source
因此您可以将这些组合起来并编写单行查询,如下所示
self.collection.find().limit(self.limit or 0).sort(self.sort or [("$natural", pymongo.ASCENDING)])
如果您设置了限制/排序值,则会被应用,否则将被忽略。