Ich glaube, es gibt keine Abkürzung, aber immer noch überprüfen wollte.Kombinieren Abfrage erhalten mit Einfügen Abfrage
sagen, dass ich eine Sammlung haben, die
[{
userName: "Mr. A"
income: 100
expense: null
finalBalance: 200
timestamp: Date.now()
}]
* wie folgt aussieht, wenn wir Einkommen Betrag haben, Kosten null sein wird, und umgekehrt Restbetrag = (Summe der Erträge) - (Summe der Kosten) Stack: mongodB + node.js
Grundsätzlich muss man den kürzesten und besten Weg kennen, um neue Objekte in die Kollektionen einzufügen, was immer die Berechnung von "finalBalance" beinhaltet.
Currettly, was ich tue, ist jedes Mal, wenn ich eine neue Transaktion wie oben gezeigt einfügen muss. Ich hole die letzte Transaktion für diesen Benutzer mit "timestamp" und "userName", und dann hinzufügen oder subtrahieren Sie die Einkommen oder Aufwand Betrag und erstellen Sie das neue Objekt und einfügen.
Zum Beispiel:
letzte Transaktion des Benutzers:
{
userName: "Mr. A"
income: 100
expense: null
finalBalance: 200
timestamp: Date.now()
}
benötigen neue Transaktion für Benutzer mit Details
({userName: "Mr. A", expense: 10})
Schritt 1 einzufügen: (erhalten von DB) Holt den letzten Transaktion für Benutzer aus DB, um den letzten "finalBalance" zu erhalten.
Schritt 2: subtrahiert die "Kosten" Menge von "finalBalance" neue "finalBalance" zu erhalten, die sein wird (200-10 = 190)
Schritt 3: (Einsatz in DB) Stellen Einsatz
{
userName: "Mr. A"
income: null
expense: 10
finalBalance: 190
timestamp: Date.now()
}
Gibt es eine Möglichkeit, wie wir den neuen "finalBalance" berechnen und das neue Objekt mit einem DB-Aufruf einfügen können?
Es wäre toll, wenn die Lösung mit mongo.js
Hallo Danke für den Vorschlag werde ich das ausprobieren. Aber das wird nicht funktionieren. Da ich eine einzelne Abfrage für das vollständige Ding benötige, die in der Frage nicht erwähnt wird, aber ich mache, stelle viele ein, die diese Abfrage verwenden, da ich ein Array oder solche Transaktionen eingefügt habe. Aber wenn diese Art von Abfrage nicht geschrieben werden kann, kann ich Ihren Vorschlag verwenden. –