Ich versuche, zwei Daten in MonoDB unter Verwendung der Aggregation Framework subtrahieren.Subtrahieren von Daten in Mongo
Mein Code sieht wie folgt aus:
$ops = array(
array('$project' => array("fieldMath" =>
array('$subtract' => array('new ISODate()', 'new ISODate("last_interacted_date")')),
)),
array('$match' => array('fieldMath' => array('$gte' => 2),
),
),
);
$object -> aggregate($ops);
Das Problem ist, ich erhalte eine Fehlermeldung, die ich 2 String zu subtrahieren versuche.
Fatal error: Uncaught exception 'MongoResultException' with message 'localhost:27017: cant $subtract aString from a String
new ISODate
und die last_interacted_date
sind beide ISODate
Objekte.
Mein Ziel ist ein Datum "Last_did_something" von dem Datum heute abziehen und Ergebnisse für alle Abfragen, die innerhalb von 2 Tagen sind, zurückgeben.
Was mache ich falsch und wie kann ich Daten abziehen?
Können Sie genau angeben, was Sie erreichen möchten, indem Sie einige Beispieldokumente und die erwartete Ausgabe hinzufügen? – chridam
Add oben, grundsätzlich möchte ich alle Ergebnisse, in denen das Datum heute, wenn subtrahiert wird, größer als 2 Tage ist. –
Sie sollten das Datum "außerhalb" der Abfrage berechnen. Sie haben dann nur eine normale Abfrage und müssen nicht aggregieren. Sie natürlich dazu in PHP. Es ist kein JavaScript, sondern BSON. Sie lassen den Fahrer die Übersetzung machen. –