Ich habe kürzlich begonnen, MongoDB für ein Projekt bei der Arbeit zu untersuchen. Ich bin ziemlich neu in der Abfragestruktur von JSON und MongoDB, also hoffe ich, dass einer von euch etwas Klärung bringen kann.Struktur und Abfragesyntax für rekursive Dokumente in MongoDB?
Ich habe das Problem in Excel-Terminologie übersetzt, da es üblich ist und meine Frage ziemlich gut darstellt.
Wenn ich versucht habe, eine Excel-Formel in ein MongoDB-Dokument zu modellieren, welches ist das beste Format dafür (ich erkläre meine möglichen Abfragen niedriger)? Denken Sie daran, dass Formeln in Excel in (fast) beliebiger Reihenfolge und mit beliebiger Tiefe verschachtelt werden können und Argumente in String- oder Zahlenform vorliegen können. Ich würde gerne in der Lage sein, über diese Zellen zu suchen, um solche Anfragen wie "Finde alle Zellen, die die Funktion = AVG()" oder "Finde alle Zellen, die die Funktion = SUM() enthalten innerhalb einer = AVG() - Funktion zu beantworten (wie = AVG (x, y, z, SUM (a, b, c))). In der Lage zu sein, diese auf einer Formelstruktur basierenden Abfragen zu beantworten, ist wichtiger als diejenigen, die auf Zahlen oder Strings antworten können, wenn die Beantwortung aller Fragen nicht möglich ist.
Derzeit bin Envisioning ich meine Dokumente in etwa dem folgenden Format:
{
formula: "AVG",
arguments: [4,5, {
formula: "SUM",
arguments: [6,7,{
formula: "ABS",
arguments: [-8,-9]
(closing parenthesis/brackets)
}
Ist das eine angemessene Format für das, was ich suche zu tun? Wenn ja, wie würde ich nach "Finde Fälle mit = SUMME innerhalb von = AVG" fragen? Was ist mit der Suche nach der = ABS-Formel, die noch tiefer verschachtelt ist? Aufgrund der dynamischen Natur von Formeln ist es nicht wirklich möglich, eine bestimmte Ordnung oder bestimmte Tiefe zu erwarten.
FYI, Sie können Dinge wie '= SUM 'und' = AVG' in Backticks (normalerweise auf den gleichen Schlüssel wie ~) setzen, da dies Code ist, der inline gehört. Willkommen bei StackOverflow! –
@mohawkjohn Ich habe in der Tat über Inline-Code gelesen, ich halte Excel-Formeln nicht wirklich cool genug, um sexy Code-Formatierung zu verdienen. Wenn Sie denken, dass es anderen helfen würde, meine Frage zu verstehen, werde ich es ändern. –
Ich würde nicht unbedingt denken, dass dies eine gute Passform für MongoDB angesichts der Beschreibung der Abfragen, die Sie vornehmen möchten. Es klingt eher so, als ob Sie eine Graphdatenbank in Betracht ziehen sollten, die komplexere Suchen nach "Kind/Vorfahren" -Typen ermöglicht. – WiredPrairie