如何在MongoDB中使用skip和limit过滤大数据



我有一个应用程序,它在Python中使用MongoDB的跳过和限制函数。它根据从服务器返回的数据获取数据,并每次将跳过和限制增加10。然而,当我试图在我的应用程序中实现过滤机制时,过滤只适用于我返回的这十个项目。有人能告诉我如何检索经过过滤的数据吗?这些数据是在需要过滤的整个数据中执行的,而不仅仅是十个项目?我需要能够以跳过和限制的形式检索这些数据。我似乎无法实现这一点。

以下是我用于上下文排序的示例函数

@app.route('/api/belowhundred/<country>/<skip>/<limit>',methods=['POST'])
def belowhundred(country,skip,limit):
products = db_products.find({'country':country}).skip(int(skip)).limit(int(limit))
prods = []
for product in products:
if int(product['price']) <= 100:
prods.append(product)
products = dumps(prods)
return products

您现在的查询是:

  • 应用筛选器C(国家/地区(
  • 获取匹配过滤器C的前10个项目
  • 应用过滤器P(价格((假设2项匹配(
  • 向用户显示与两个筛选器匹配的2个项目

您想要:

  • 将两个过滤器(C和P(应用于整个集合
  • 获取与两个筛选器匹配的前10个项目
  • 向用户显示

要实现这一点,您还需要在服务器上按p进行筛选。尝试:

find({'country':country, 'price': {'$lt': 100}})

您需要使用MongoDB查询语言(MQL(而不是Python运算符来指定此处的条件。

最新更新