亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Inhaltsverzeichnis
noSql == Kein Join?
MongoDB -Aggregation
alles zusammenfügen
Gro?artig! Ich kann endlich zu NoSQL wechseln!
FAQs über die Verwendung von Join in MongoDB -NoSQL -Datenbanken (FAQ)
Was ist der Unterschied zwischen SQL -Verbindung und MongoDB -Verbindung?
Kann ich mehrere Sammlungen in MongoDB anschlie?en?
Wie kann man mit Null- oder fehlenden Werten umgehen, wenn die MongoDB -Verbindung verwendet wird?
Kann ich die MongoDB -Verbindung mit Sharded -Sammlungen verwenden?
Wie sortiere ich verbundene Dokumente in MongoDB?
Kann ich die MongoDB -Verbindung mit find() Methode verwenden?
Wie debugge oder Fehlerbehebung MongoDB -Verbindungsfehler?
Heim Technologie-Peripherieger?te IT Industrie Verwenden von Verbindungen in MongoDB -NoSQL -Datenbanken

Verwenden von Verbindungen in MongoDB -NoSQL -Datenbanken

Feb 18, 2025 pm 12:59 PM

Using JOINs in MongoDB NoSQL Databases

Kernpunkte

  • mongoDB, eine NoSQL-Datenbank, führte einen neuen $lookup -Operator in Version 3.2 ein, der an zwei oder mehr S?tzen linksgerichtete Operationen ausführen kann, wodurch Daten ?hnlich wie relationale Datenbanken erfolgen. Dieser Betreiber ist jedoch darauf beschr?nkt, in aggregierten Operationen zu verwenden, die komplexer und normalerweise langsamer sind als einfache Nachschlaganfragen.
  • mongoDBs $lookup -Operator ben?tigt vier Parameter: localField (geben Sie das Suchfeld im Dokument ein), from (die Sammlung, die angeschlossen werden soll), foreignField (Felder, die in der Sammlung von from) und as (Name des Ausgabefeldes). Dieser Bediener kann in aggregierten Abfragen verwendet werden, um Beitr?ge abzustimmen, in der Reihenfolge zu sortieren, die Anzahl der Elemente zu begrenzen, Benutzerdaten zu verbinden, Benutzerarrays abzuflachen und nur die erforderlichen Felder zurückzugeben.
  • Obwohl der $lookup -Preiber von MongoDB nützlich ist und eine kleine Menge an relationalen Daten in einer NoSQL -Datenbank verwalten kann, ist dies kein Ersatz für die leistungsst?rkere Join -Klausel in SQL. Wenn das Benutzerdokument in MongoDB gel?scht wird, wird das Orphan Post -Dokument erhalten, was auf einen Mangel an Einschr?nkungen hinweist. Wenn der $lookup -Operator h?ufig verwendet wird, kann dies daher angeben, dass die falsche Datenspeicherung verwendet wird und eine relationale (SQL) -Datenbank m?glicherweise besser geeignet ist.

Using JOINs in MongoDB NoSQL Databases Vielen Dank an Julian Motz für seine Peer Review -Hilfe.


Einer der gr??ten Unterschiede zwischen den SQL- und NoSQL -Datenbanken ist die Verbindung. In einer relationalen Datenbank k?nnen Sie mit der SQL -Join -Klausel Zeilen aus zwei oder mehr Tabellen mit einem gemeinsamen Feld zwischen ihnen kombinieren. Wenn Sie beispielsweise eine Buch- und Verlagstabelle haben, k?nnen Sie den folgenden SQL -Befehl schreiben:

SELECT book.title, publisher.name
FROM book
LEFT JOIN book.publisher_id ON publisher.id;

Mit anderen Worten, in der Buchentabelle enth?lt ein Feld publisher_id, das das Feld ID in der Publisher -Tabelle verweist.

Dies ist praktisch, da ein einzelner Verlag Tausende von Büchern bereitstellen kann. Wenn wir die Details des Herausgebers in Zukunft aktualisieren müssen, k?nnen wir den einzelnen Datensatz ?ndern. Die Datenreduktion wird minimiert, da wir die Informationen des Verlags für jedes Buch nicht wiederholen müssen. Diese Technologie wird als Standardisierung bezeichnet.

SQL -Datenbanken bieten eine Reihe von Standardisierung und Einschr?nkungen, um die Aufrechterhaltung von Beziehungen sicherzustellen.

noSql == Kein Join?

Dies ist nicht immer der Fall…

dokumentorientierte Datenbanken (z. B. MongoDB) sind so ausgelegt, dass sie de-armalisierte Daten speichern. Im Idealfall sollte es keine Beziehung zwischen S?tzen geben. Wenn dieselben Daten in zwei oder mehr Dokumenten enthalten sind, muss diese wiederholt werden.

Dies kann frustrierend sein, da es fast keine Situation gibt, in der Sie niemals relationale Daten ben?tigen. Glücklicherweise führte MongoDB 3.2 einen neuen -Operator ein, der bei zwei oder mehr S?tzen linksgerichtete Operationen ausführen kann. Aber es gibt ein Problem ... $lookup

MongoDB -Aggregation

$lookup erlaubt nur in aggregierten Operationen verwendet werden. Stellen Sie sich dies als eine Pipeline einer Reihe von Operatoren vor, die die Ergebnisse von Abfragen, Filtern und Gruppen abfragen, gefiltert. Die Ausgabe eines Operators wird als Eingang für den n?chsten Bediener verwendet.

Aggregationen sind schwerer zu verstehen als einfache Suchabfragen und laufen normalerweise langsamer. Sie sind jedoch leistungsstark und eine wertvolle Option für komplexe Suchvorg?nge.

Es ist am besten, ein Beispiel zu verwenden, um die Aggregation zu erkl?ren. Angenommen, wir erstellen eine Social -Media -Plattform mit einer Sammlung von Benutzern. Es speichert die Details jedes Benutzers in einem separaten Dokument. Zum Beispiel:

SELECT book.title, publisher.name
FROM book
LEFT JOIN book.publisher_id ON publisher.id;

Wir k?nnen so viele Felder hinzufügen, wie wir es wollen, aber alle MongoDB -Dokumente erfordern ein _id -Feld mit einem eindeutigen Wert. _id ?hnlich wie bei SQL Prim?rschlüssel werden sie bei Bedarf automatisch eingefügt.

Unser soziales Netzwerk ben?tigt jetzt eine Sammlung von Beitr?gen, in denen eine gro?e Anzahl aufschlussreicher Updates von Benutzern gespeichert wird. Das Dokument speichert Text, Datum, Bewertung und Verweise auf den Benutzer, der ihn im Feld user_id geschrieben hat:

{
  "_id": ObjectID("45b83bda421238c76f5c1969"),
  "name": "User One",
  "email": "userone@email.com",
  "country": "UK",
  "dob": ISODate("1999-09-13T00:00:00.000Z")
}

Wir m?chten jetzt die letzten zwanzig Beitr?ge anzeigen, die von allen Benutzern in umgekehrter Reihenfolge bewertet werden. Jedes zurückgegebene Dokument sollte Text, die Zeit des Beitrags sowie den Namen und das Land des zugeh?rigen Benutzers enthalten.

MongoDB -Aggregation -Abfrage besteht aus einer Reihe von Pipeline -Operatoren, die jede Operation in der Reihenfolge definieren. Zun?chst müssen wir den $match -Filter verwenden, um alle Dokumente mit korrekten Bewertungen aus der Postsammlung zu extrahieren:

{
  "_id": ObjectID("17c9812acff9ac0bba018cc1"),
  "user_id": ObjectID("45b83bda421238c76f5c1969"),
  "date": ISODate("2016-09-05T03:05:00.123Z"),
  "text": "My life story so far",
  "rating": "important"
}

Wir müssen jetzt die passenden Elemente in umgekehrter Reihenfolge sortieren, indem wir den Operator $sort verwenden:

{ "$match": { "rating": "important" } }

Da wir nur zwanzig Beitr?ge ben?tigen, k?nnen wir die $limit -Pufe anwenden, damit MongoDB nur die gewünschten Daten verarbeiten muss:

{ "$sort": { "date": -1 } }

Wir k?nnen jetzt den neuen $lookup Bediener verwenden, um Daten aus der Benutzersammlung zu verbinden. Es erfordert ein Objekt mit vier Parametern:

  • localField: Geben Sie das Suchfeld in das Dokument
  • ein
  • from: Sammlung, die angeschlossen werden kann
  • foreignField: Felder in from Sammlung
  • gefunden
  • as: Der Name des Ausgabebuchs.

Daher ist unser Bediener:

{ "$limit": 20 }

Dies erstellt ein neues Feld in unserer Ausgabe namens userinfo. Es enth?lt ein Array, in dem jeder Wert dem Benutzerdokument übereinstimmt:

{ "$lookup": {
  "localField": "user_id",
  "from": "user",
  "foreignField": "_id",
  "as": "userinfo"
} }

Wir haben eine Eins-zu-Eins-Beziehung post.user_id und user._id, da ein Beitrag nur einen Autor haben kann. Daher enth?lt unser userinfo -Array immer nur ein Element. Wir k?nnen den $unwind -Operator verwenden, um ihn in ein Subdokument zu zerlegen:

"userinfo": [
  { "name": "User One", ... }
]

Ausgabe wird nun in ein praktischere Format umgewandelt, wobei andere Betreiber zur Bewerbung verfügbar sind:

{ "$unwind": "$userinfo" }

Schlie?lich k?nnen wir die $project -Püche in der Pipeline verwenden, um Text, Zeit des Posts, den Namen und das Land des Benutzers zurückzugeben:

SELECT book.title, publisher.name
FROM book
LEFT JOIN book.publisher_id ON publisher.id;

alles zusammenfügen

Unsere endgültige aggregierte Abfrage entspricht den Beitr?gen, Sortierungen, Grenzen für die neuesten zwanzig Elemente, verbindet Benutzerdaten, flacht Benutzerarrays und gibt nur die erforderlichen Felder zurück. Vollst?ndiger Befehl:

{
  "_id": ObjectID("45b83bda421238c76f5c1969"),
  "name": "User One",
  "email": "userone@email.com",
  "country": "UK",
  "dob": ISODate("1999-09-13T00:00:00.000Z")
}

Das Ergebnis ist eine Sammlung von bis zu zwanzig Dokumenten. Zum Beispiel:

{
  "_id": ObjectID("17c9812acff9ac0bba018cc1"),
  "user_id": ObjectID("45b83bda421238c76f5c1969"),
  "date": ISODate("2016-09-05T03:05:00.123Z"),
  "text": "My life story so far",
  "rating": "important"
}

Gro?artig! Ich kann endlich zu NoSQL wechseln!

mongoDB $lookup ist nützlich und m?chtig, aber selbst dieses grundlegende Beispiel erfordert eine komplexe Aggregationsabfrage. Es kann die leistungsst?rkere Join -Klausel in SQL nicht ersetzen. MongoDB liefert auch keine Einschr?nkungen.

im Idealfall sollte der $lookup -Operator selten ben?tigt werden. Wenn Sie es h?ufig ben?tigen, haben Sie m?glicherweise den falschen Datenspeicher verwendet ...

Wenn Sie relationale Daten haben, verwenden Sie bitte eine SQL -Datenbank (Relational (SQL)!

Das hei?t $lookup ist eine beliebte Erg?nzung zu MongoDB 3.2. Es überwindet einige der frustrierenderen Probleme bei der Verwendung einer kleinen Menge an relationalen Daten in einer NoSQL -Datenbank.

FAQs über die Verwendung von Join in MongoDB -NoSQL -Datenbanken (FAQ)

Was ist der Unterschied zwischen SQL -Verbindung und MongoDB -Verbindung?

In einer SQL -Datenbank kombiniert der Verbindungsvorgang Zeilen aus zwei oder mehr Tabellen basierend auf den zwischen ihnen verbundenen Spalten. MongoDB als NoSQL -Datenbank unterstützt jedoch keine herk?mmlichen SQL -Verbindungen. Stattdessen bietet MongoDB zwei M?glichkeiten, ?hnliche Operationen auszuführen: die $lookup Stufe und die $graphLookup -Pr?paration in der Aggregation. Mit diesen Methoden k?nnen Sie Daten aus mehreren Sammlungen zu einem einzigen Ergebnissatz kombinieren.

Wie funktioniert die

-Stufe in MongoDB? $lookup Mit der

mit der

-Püche in mongoDB k?nnen Sie Dokumente aus einer anderen Sammlung ("Connected" -Kollektion) anschlie?en und die angeschlossenen Dokumente in das Eingabedokument hinzufügen. Die $lookup -Phase gibt die "aus" Sammlung, "Localfield" und "Foreignfield" an, um das Dokument zu entsprechen, und das "als" Feld ", um das Dokument auszugeben. Es ?hnelt dem linken ?u?eren Join in SQL, wobei alle Dokumente aus der Eingabetaste zurückgegeben und Dokumente aus der "From" -Kollektion übereinstimmen. $lookup

Kann ich eine rekursive Suche mit der MongoDB -Verbindung durchführen?

Ja, MongoDB liefert eine

-Phase für die rekursive Suche. Die $graphLookup -Stufe führt eine rekursive Suche im angegebenen Satz durch und kann die Tiefe und Breite der Suche einschr?nken. Es ist nützlich, um hierarchische Daten oder Diagramme abzufragen, bei denen die Anzahl der Ebenen unbekannt ist oder sich ?ndern kann. $graphLookup

Wie optimieren Sie die Leistung, wenn Sie die MongoDB -Verbindung verwenden?

Um die Leistung bei der Verwendung von MongoDB -Verbindungen zu optimieren, berücksichtigen Sie die folgenden Strategien: Verwenden Sie die Indizes für "Lokalfeld" und "Fremdfeld", um den übereinstimmungsprozess zu beschleunigen. ??> Stufe

und $lookup Stufen zum Filtern und Umwandeln von Dokumenten. $match

Kann ich mehrere Sammlungen in MongoDB anschlie?en?

Ja, Sie k?nnen mehrere MongoDB -Sammlungen anschlie?en, indem Sie mehrere $lookup Stufen in einer Aggregationspipeline verknüpfen. Jede $lookup -Püche fügt verbundene Dokumente aus einer anderen Sammlung zum Eingabedokument hinzu.

Wie kann man mit Null- oder fehlenden Werten umgehen, wenn die MongoDB -Verbindung verwendet wird?

Bei Verwendung der MongoDB -Verbindung fügt die $lookup -Phase das Dokument in der "From" -Kollektion nicht übereinstimmt, wenn das Dokument in der Eingabesammlung nicht übereinstimmt, ein leeres Array zum Feld "AS". Sie k?nnen diese Null- oder fehlenden Werte verarbeiten, indem Sie die $lookup -Phase nach der $match -Phase hinzufügen, um Dokumente mit leeren "als" Felder herauszufiltern.

Kann ich die MongoDB -Verbindung mit Sharded -Sammlungen verwenden?

Ausgehend von MongoDB 3.6 k?nnen die Stufen $lookup und $graphLookup Sharded -Sets von "aus" -Sets sein. Aufgrund des zus?tzlichen Netzwerkaufwands ist jedoch m?glicherweise nicht so gut wie nicht geschützte Sammlungen.

Wie sortiere ich verbundene Dokumente in MongoDB?

Sie k?nnen verbundene Dokumente in MongoDB sortieren, indem Sie die $lookup -Phase nach der $sort -Phase in der Aggregationspipeline hinzufügen. Die $sort -Püche sortiert die Dokumente im angegebenen Feld in aufsteigender oder absteigender Reihenfolge.

Kann ich die MongoDB -Verbindung mit find() Methode verwenden?

Nein, MongoDB -Verbindung kann nicht mit find() Methode verwendet werden. Die Stufen $lookup und $graphLookup sind Teil des Aggregations -Frameworks, das fortschrittlichere Datenverarbeitungsfunktionen bietet als die find() -Methode.

Wie debugge oder Fehlerbehebung MongoDB -Verbindungsfehler?

Um MongoDB -Verbindungsfehler zu debuggen oder zu beheben, k?nnen Sie die Methode explain() verwenden, um den Ausführungsplan der Aggregat -Pipeline zu analysieren. Die explain() -Methode enth?lt detaillierte Informationen zur Bühne, einschlie?lich der Anzahl der verarbeiteten Dokumente, der verbrauchten Zeit und der Verwendung des Index.

Das obige ist der detaillierte Inhalt vonVerwenden von Verbindungen in MongoDB -NoSQL -Datenbanken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72
Ihre Ger?te füttern AI -Assistenten und ernten personenbezogenen Daten, auch wenn sie schlafen. Hier erfahren Sie, was Sie teilen. Ihre Ger?te füttern AI -Assistenten und ernten personenbezogenen Daten, auch wenn sie schlafen. Hier erfahren Sie, was Sie teilen. Jul 05, 2025 am 01:12 AM

Ob es ihm gef?llt oder nicht, künstliche Intelligenz ist Teil des t?glichen Lebens geworden. Viele Ger?te-einschlie?lich elektrischer Rasierer und Zahnbürsten-sind KI-betrieben.

Hurrikane und Sandstürme k?nnen dank des neuen Microsoft AI -Modells 5.000 -mal schneller prognostiziert werden Hurrikane und Sandstürme k?nnen dank des neuen Microsoft AI -Modells 5.000 -mal schneller prognostiziert werden Jul 05, 2025 am 12:44 AM

Ein neues Modell für künstliche Intelligenz (KI) hat gezeigt, dass die F?higkeit, wichtige Wetterereignisse schneller und mit gr??erer Pr?zision vorherzusagen als einige der am h?ufigsten verwendeten globalen Vorhersagesysteme

Fortgeschrittene KI -Modelle generieren bis zu 50 -mal mehr CO ₂ Emissionen als h?ufigere LLMs bei der Beantwortung der gleichen Fragen Fortgeschrittene KI -Modelle generieren bis zu 50 -mal mehr CO ₂ Emissionen als h?ufigere LLMs bei der Beantwortung der gleichen Fragen Jul 06, 2025 am 12:37 AM

Je pr?zise wir versuchen, KI -Modelle zu funktionieren, desto gr??er werden ihre Kohlenstoffemissionen - mit bestimmten Aufforderungen, die bis zu 50 -mal mehr Kohlendioxid erzeugen als andere, laut einer kürzlich durchgeführten Studie.

Ai 'Halluzinate' st?ndig, aber es gibt eine L?sung Ai 'Halluzinate' st?ndig, aber es gibt eine L?sung Jul 07, 2025 am 01:26 AM

Das Hauptanliegen bei Big Tech, das mit künstlicher Intelligenz (KI) experimentiert, ist es nicht, dass es die Menschheit dominieren k?nnte. Das eigentliche Problem liegt in den anhaltenden Ungenauigkeiten von Gro?sprachmodellen (LLMs) wie der Open AI -Chatgpt, Googlees Gemini und Google

Warum h?ufiger Ai Halllucination und wie k?nnen wir es aufhalten? Warum h?ufiger Ai Halllucination und wie k?nnen wir es aufhalten? Jul 08, 2025 am 01:44 AM

Je fortgeschrittener künstlicher Intelligenz (KI) wird, desto mehr "halluzinieren" und liefern falsche oder ungenaue Informationen.

Spitzended KI-Modelle von OpenAI und Deepseek unterziehen einen vollst?ndigen Zusammenbruch, wenn Probleme zu schwierig werden, wie die Studie zeigt Spitzended KI-Modelle von OpenAI und Deepseek unterziehen einen vollst?ndigen Zusammenbruch, wenn Probleme zu schwierig werden, wie die Studie zeigt Jul 07, 2025 am 01:02 AM

Argumentationsmodelle für künstliche Intelligenz (KI) sind nicht ganz so f?hig, wie sie erscheinen. In Wirklichkeit wird ihre Leistung vollst?ndig zusammengefasst, wenn die Aufgaben zu komplex werden, so Forscher von Apple. Verarbeitung von Modellen wie Anthropics Claude, offen, offen

Verhaftungen, die auf der Suche nach Hackern hinter Cyber-Angriffen auf M & S und Koop vorgenommen wurden Verhaftungen, die auf der Suche nach Hackern hinter Cyber-Angriffen auf M & S und Koop vorgenommen wurden Jul 11, 2025 pm 01:36 PM

Die britische National Crime Agency (NCA) hat vier Personen verhaftet, die der Beteiligung an den Cyber-Angriffen auf Markierungen und Spencer (M & S), Co-op und Harrods.According zu einer Erkl?rung verd?chtigen, zwei 19-j?hrige M?nner, ein 17-j?hriger O-o

Post-Quantum-Kryptographie ist jetzt für Cybersicherheitsführer im Vordergrund Post-Quantum-Kryptographie ist jetzt für Cybersicherheitsführer im Vordergrund Jul 11, 2025 pm 01:38 PM

Post-Quantum-Kryptographie hat für Cybersecurity-Führungskr?fte eine oberste Priorit?t geworden, aber jüngste Untersuchungen zeigen, dass einige Organisationen die Bedrohung mit der Ernsthaftigkeit, die es verlangt, nicht behandeln.

See all articles