MongoDB计数已弃用

2024-09-29 21:52:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在进行一个MongoDB查询,在这里我需要循环我的结果并计算结果的len,以查看是否返回了一个空结果

以下是我尝试过的:

Record = db.mycol.find({"datetimeraw": dt.now().strftime('%Y%m%d%H%M')})

RecordLen = Record.count()
print('LEN IS':RecordLen)

for x in Record:
    print(x)

这段代码可以工作,但是当我使用它时,我得到了以下错误:DeprecationWarning: count is deprecated. Use Collection.count_documents instead.问题是我不能使用count_documents(),因为它将返回一个整数,而不是我可以循环的结果列表;在这种情况下,我必须进行两个查询:一个用于计数,另一个用于检索结果,我希望避免这种情况。有没有办法做到这一点,或者我只能使用一个非包装的功能


Tags: dblenmongodbcountdt情况findrecord
1条回答
网友
1楼 · 发布于 2024-09-29 21:52:08

在MongoDB中.find()将始终返回一个游标,该游标可以是空的[]或一个文档数组/dicts[{},{}]

As.count()可用三种方式使用:

/** 1. Queries all docs based on filter and then returns no.of docs matches with query */
db.collection.find( { queryFilter } ).count()

/** 2. Returns no.of docs */
db.collection.count()

/** 3. Returns a cursor `results` */ 
results = db.collection.find( { queryFilter } )
results.count()

因此,前两个选项类似于countdocuments()estimateddocumentcount()(返回一个数字),但当您希望返回文档并获得类似于cursor.count()的游标计数时,可以在代码中使用len()方法:len(list(results))

相关问题 更多 >

    热门问题