gpt4 book ai didi

Mongodb 检查存在计数与 findOne 性能

转载 作者:可可西里 更新时间:2023-11-01 09:12:53 25 4
gpt4 key购买 nike

我想知道我的数据库中是否存在某个文档,我很好奇,最好的方法是什么?使用

User.findOne(query).select('_id')

User.count(查询)

一方面,findOne 返回一个 24 位的十六进制字符串,而 count 将只返回一个整数;另一方面,.count 它将遍历整个集合,而 .findOne 将在第一个匹配的文档处停止。

我找到的与此相关的唯一答案是 this问题,找不到其他任何答案,哪个答案有利于.count,Mongo在性能方面做了很多工作,这个问题是6年前的。

什么更有值(value)?内存 (findOne) 还是处理能力 (count)?

最佳答案

在某些情况下,count 可能会给您不准确的结果。此外,性能会比 findOne() 慢。

On a sharded cluster, db.collection.count() can result in an inaccurate count if orphaned documents exist or if a chunk migration is in progress.

After an unclean shutdown of a mongod using the Wired Tiger storage engine, count statistics reported by count() may be inaccurate.

由于您确实希望检查文档是否存在,因此我认为 findOne() 是更好的选择。

关于Mongodb 检查存在计数与 findOne 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48649512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com