Python 3.x python 3.8上的Mango查询

Python 3.x python 3.8上的Mango查询,python-3.x,couchdb,couchdb-mango,Python 3.x,Couchdb,Couchdb Mango,我正在尝试从Python查询CouchDB数据库,它可以工作。。。但并非完全如此 因此,我创建了一个分区数据库,其中包含电影、收视率和标签的分区,每个分区的id都是“partitionName:id” 现在,我想把文档数到ratings分区(我下载的.csv文件中的100836) 连接后,我执行以下操作: mango1 = {"selector" : { "_id" : {"$regex" : "^ratings :"}}} i = 0 for row in db.find(mango1):

我正在尝试从Python查询CouchDB数据库,它可以工作。。。但并非完全如此

因此,我创建了一个分区数据库,其中包含电影、收视率和标签的分区,每个分区的id都是“partitionName:id”

现在,我想把文档数到ratings分区(我下载的.csv文件中的100836)

连接后,我执行以下操作:

mango1 = {"selector" : { "_id" : {"$regex" : "^ratings :"}}}
i = 0
for row in db.find(mango1):
    i += 1
print ("Ratings are: ", i)

它总是打印25个文档,但从GUI我知道有超过25个文档。我如何解决这个问题?我读到Mango不能像SQL那样计数。

您总是得到25,因为默认的CoucheDB限制是25个文档

你也需要增加

  • 限制大小,以便一次或多次检索所有文档
  • 进行某种分页,使用起始偏移量检索25个文档
增加检索文档的限制

例如,要获取100个文档,您可以尝试以下方法:

{"selector" : { "_id" : {"$regex" : "^ratings :"}}, "limit": 100}
分页 分页的形式可能如下所示:

{"selector" : { "_id" : {"$regex" : "^ratings :"}}, "limit": 50, "skip": 100}

此查询将跳过前100个文档,并得到以下50个文档。

谢谢,跳过功能似乎不起作用,但我已将限制设置为500万,而且效果很好。奇怪的是,它不起作用,您应该找出问题所在,因为它将有助于您将来使用它。关于如何使用limit和skip的更多信息可以在文档中找到:我会找到的,因为所有这些都让我着迷,我相信NoSQL在未来将非常有用