[置顶] 如何在Mongodb集合中统计去重之后的数据
比方说我们有个Mongodb集合, 以这个简单的集合为例,我们需要集合中包含多少不同的手机号码,首先想到的应该就是使用distinct关键字, db.tokencaller.distinct('Caller').length 如果想查看具体的而不同的手机号码,那么可以省略后面的length属性,因为 db
比方说我们有个Mongodb集合,
以这个简单的集合为例,我们需要集合中包含多少不同的手机号码,首先想到的应该就是使用distinct关键字,
db.tokencaller.distinct('Caller').length
如果想查看具体的而不同的手机号码,那么可以省略后面的length属性,因为db.tokencaller.distinct('Caller')返回的是由所有去重手机号码组成的数组。

但是,这种方式对于所有情况都是满足的嘛?并不如此,如果要统计的集合记录数较大,如千万级别的,那么在这么统计的时候往往会报10044错误,提示信息“exception : distinct too big , 16mb cap”. 后面我们将通过其他方式进行解决。
另外一种方式可以使用runCommand结合distinct进行使用,
db.runCommand({"distinct":"tokencaller","key":"Caller"})

可见在values上显示了去重之后的手机号码,,看结果是一个Json格式的,于是尝试了下看看能不能取出values的大小,因为如果对于大数据量的集合来说,直接显示去重的号码明显不合适,于是尝试了下面的写法:

发现是可以的,于是对大数据量使用了这种方式看看是否能取出结果,发现不存在length属性,想了想应该跟mongodb的客户端版本有关系吧,还待验证!!!
两种方式都不行,于是试了下mapReduce方式,具体如下:

然后我们会发现,他会将查询出来的结果输出到一个称为“callerstatis”的结合,如下所示:

然后使用db.callerstatis.count()就可以知道有多少不同的手机号码了。
使用这种方式,我们同样在大数据量的集合上试了一下,可惜还是失败了!!!!(桑心T_T),如果有谁有好的方法,麻烦也告诉我一下,小的感激不尽啊^_^

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











In diesem Artikel wird vorgestellt, wie MongoDB im Debian -System konfiguriert wird, um eine automatische Expansion zu erzielen. Die Hauptschritte umfassen das Einrichten der MongoDB -Replikat -Set und die Überwachung des Speicherplatzes. 1. MongoDB Installation Erstens stellen Sie sicher, dass MongoDB im Debian -System installiert ist. Installieren Sie den folgenden Befehl: sudoaptupdatesudoaptinstall-emongoDB-org 2. Konfigurieren von MongoDB Replika-Set MongoDB Replikate sorgt für eine hohe Verfügbarkeit und Datenreduktion, was die Grundlage für die Erreichung der automatischen Kapazitätserweiterung darstellt. Start MongoDB Service: SudosystemctlstartMongodsudosysys

Bei der Entwicklung einer E-Commerce-Website habe ich auf ein schwieriges Problem gestoßen: So liefern Sie den Benutzern personalisierte Produktempfehlungen. Anfangs habe ich einige einfache Empfehlungsalgorithmen ausprobiert, aber die Ergebnisse waren nicht ideal und die Benutzerzufriedenheit war ebenfalls betroffen. Um die Genauigkeit und Effizienz des Empfehlungssystems zu verbessern, habe ich mich entschlossen, eine professionellere Lösung zu übernehmen. Schließlich habe ich Andres-Montanez/Empfehlungen durch den Komponisten installiert, was nicht nur mein Problem löste, sondern auch die Leistung des Empfehlungssystems erheblich verbesserte. Sie können Komponist über die folgende Adresse lernen:

In diesem Artikel wird beschrieben, wie man eine hoch verfügbare MongoDB -Datenbank für ein Debian -System erstellt. Wir werden mehrere Möglichkeiten untersuchen, um sicherzustellen, dass die Datensicherheit und -Dienste weiter funktionieren. Schlüsselstrategie: ReplicaSet: Replicaset: Verwenden Sie Replikaten, um Datenreduktion und automatisches Failover zu erreichen. Wenn ein Master -Knoten fehlschlägt, wählt der Replikate -Set automatisch einen neuen Masterknoten, um die kontinuierliche Verfügbarkeit des Dienstes zu gewährleisten. Datensicherung und Wiederherstellung: Verwenden Sie den Befehl mongodump regelmäßig, um die Datenbank zu sichern und effektive Wiederherstellungsstrategien zu formulieren, um das Risiko eines Datenverlusts zu behandeln. Überwachung und Alarme: Überwachungsinstrumente (wie Prometheus, Grafana) bereitstellen, um den laufenden Status von MongoDB in Echtzeit zu überwachen, und

Es ist unmöglich, das MongoDB -Passwort direkt über Navicat anzuzeigen, da es als Hash -Werte gespeichert ist. So rufen Sie verlorene Passwörter ab: 1. Passwörter zurücksetzen; 2. Überprüfen Sie die Konfigurationsdateien (können Hash -Werte enthalten). 3. Überprüfen Sie Codes (May Hardcode -Passwörter).

Detaillierte Erläuterung der effizienten Backup -Strategie von MongoDB im CentOS -System Dieser Artikel wird die verschiedenen Strategien zur Implementierung der MongoDB -Sicherung im CentOS -System ausführlich einführen, um die Datensicherheit und die Geschäftsübergang zu gewährleisten. Wir werden manuelle Backups, zeitgesteuerte Sicherungen, automatisierte Skriptsicherungen und Sicherungsmethoden in Docker -Containerumgebungen abdecken und Best Practices für die Verwaltung von Sicherungsdateien bereitstellen. Handbuch Sicherung: Verwenden Sie den Befehl mongodump, um eine manuelle vollständige Sicherung durchzuführen.

Verschlüsseln Sie die MongoDB -Datenbank in einem Debian -System erfordert die folgenden Schritte: Schritt 1: Stellen Sie zuerst die MongoDB -Installation durch, dass Ihr Debian -System MongoDB installiert hat. Wenn nicht, lesen Sie bitte das offizielle MongoDB-Dokument für die Installation: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/step 2: Generieren Sie die Verschlüsselungsschlüsseldatei Erstellen Sie eine Datei, die die Verschlüsselungsschlüssel enthält, und setzen

Die GitLab -Datenbank -Bereitstellungshandbuch zum CentOS -System zur Auswahl der richtigen Datenbank ist ein wichtiger Schritt bei der erfolgreichen Bereitstellung von GitLab. GitLab ist mit einer Vielzahl von Datenbanken kompatibel, darunter MySQL, PostgreSQL und MongoDB. In diesem Artikel wird ausführlich erklärt, wie Sie diese Datenbanken auswählen und konfigurieren. Datenbankauswahlempfehlung MySQL: Ein weit verbreitetes relationales Datenbankverwaltungssystem (RDBMS) mit stabiler Leistung und für die meisten GitLab -Bereitstellungsszenarien geeignet. PostgreSQL: leistungsstarke Open -Source -RDBMs unterstützt komplexe Abfragen und erweiterte Funktionen, die für die Behandlung großer Datensätze geeignet sind. MongoDB: beliebte NoSQL -Datenbank, gut im Umgang mit See

Befolgen Sie die folgenden Schritte, um einen MongoDB -Benutzer einzurichten: 1. Stellen Sie eine Verbindung zum Server her und erstellen Sie einen Administratorbenutzer. 2. Erstellen Sie eine Datenbank, um Benutzern Zugriff zu gewähren. 3.. Verwenden Sie den Befehl createUser, um einen Benutzer zu erstellen und seine Rolle und Datenbankzugriffsrechte anzugeben. V. 5. Legen Sie optional andere Berechtigungen oder Gewährung der Benutzer Berechtigungen für eine bestimmte Sammlung ein.
