Ich muss fünf Indizes in einer großen MongoDB-Sammlung erstellen. Ich kenne die Operation 'secureIndex', aber ich kenne keine Möglichkeit, alle fünf Indizes mit einem einzigen Befehl zu erstellen. Ist diese Batch-Index-Erstellung in MongoDB möglich?Mehrere Indizes gleichzeitig erstellen
Antwort
Ich denke, das ist nicht mit einzelnen Befehl möglich, aber Sie können Ihr eigenes Skript erstellen, die dasselbe ausführen. Wenn Ihre Sammlungsgröße groß ist, empfehle ich Ihnen, Indizes separat mit Hintergrundtrue zu erstellen, um die Wahrscheinlichkeit eines Locking-Problems zu verringern.
db.collection.ensureIndex({ a: 1 }, { background: true })
Derzeit gibt es keine Lösung dafür.
Im Hintergrund wird verhindert, dass die Datenbank gesperrt wird und andere Vorgänge ausgeführt werden können. Aber um diese Operationen auszuführen, müssen Sie eine neue Mongo-Shell öffnen oder sie asynchron in der Sprache Ihrer Wahl ausführen (wie js).
Aber wenn Sie eine starke Konsistenz benötigen und keine Hintergrundindexerstellung benötigen ... müssen Sie wahrscheinlich warten, bis eine native native Lösung von MongoDB kommt.
Sie sind falsch, Mongo hat createIndexes Befehl seit 2.6 (veröffentlicht vor 2014)
https://docs.mongodb.com/v3.0/reference/command/createIndexes/
Dokumentation sagt, dass es eine durch die Sammlung passieren erfordert, so dass es etwa 5-mal schneller sein sollte.
Dies ist ziemlich einfach innerhalb der Shell, es gibt eine Erweiterung der Sammlung createIndexes
und Sie geben nur die Schlüssel, die Sie Indizes erstellen möchten.
db.test.createIndexes([
{ "a" : 1 },
{ "b" : 1 },
{ "c" : 1 },
{ "d" : 1 },
{ "e" : 1 }
]);
Dies wird uns dann die
folgenden geben> db.test.getIndexes()
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"a" : 1
},
"name" : "a_1",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"b" : 1
},
"name" : "b_1",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"c" : 1
},
"name" : "c_1",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"d" : 1
},
"name" : "d_1",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"e" : 1
},
"name" : "e_1",
"ns" : "test.test"
}
]
>
- 1. Suche mehrere Indizes gleichzeitig mit Lucene Search
- 2. Mehrere Lösungsplattformen gleichzeitig erstellen?
- 3. AKTUALISIEREN/ERSTELLEN mit LINKEN JOIN mehrere gleichzeitig
- 4. Abfrage zwei Indizes gleichzeitig in Kibana 4?
- 5. Mehrere Indizes im Vergleich zu mehrspaltigen Indizes
- 6. Mehrere und einzelne Indizes
- 7. Postgres mehrere Indizes
- 8. git mehrere Indizes
- 9. Mehrere Indizes möglich mit HasColumnAnnotation?
- 10. Mehrere Listenfelder gleichzeitig scrollen?
- 11. Mehrere Geste Responder gleichzeitig
- 12. Mehrere Eventlistener gleichzeitig hinzufügen
- 13. Mehrere Tasten gleichzeitig drücken
- 14. Mehrere Ganzzahlen gleichzeitig drucken
- 15. Tomcat mehrere Instanzen gleichzeitig
- 16. Mehrere Junit-Testfälle gleichzeitig
- 17. Mehrere YouTube-Videos gleichzeitig stummschalten
- 18. Java ersetzt mehrere Teile (basierend auf Indizes)
- 19. Wie kann ich mehrere Projekte gleichzeitig mit Albacore erstellen?
- 20. Erstellen Sie mehrere Artefakte mit verschiedenen Klassifikatoren gleichzeitig
- 21. Führt SSRS mehrere Abfragen gleichzeitig aus?
- 22. scheint jQuery mehrere Anrufe gleichzeitig
- 23. Mehrere Ersetzungen mit vordefinierten Indizes
- 24. Mehrere Maschinen - mehrere Dateien gleichzeitig verarbeiten?
- 25. Elasticsearch Suche über mehrere Indizes - ignoriert nicht-vorhandenen Indizes
- 26. Mehrere Emacs-Infodateien gleichzeitig lesen
- 27. Django Mehrere Attribute gleichzeitig rendern?
- 28. Node.js ersetzen mehrere Zeichenfolgen gleichzeitig
- 29. Werden mehrere Variablenzuordnungen gleichzeitig ausgeführt?
- 30. Mehrere R-Skripte gleichzeitig ausführen