Ich habe MongoDB Sammlung namens ändert welche enthält folgende DatenWie MongoDB Aggregation Abfrage Laravel MongoDB von jenssegers
{
"date" : ISODate("2014-06-09T00:00:00.000Z"),
"field" : "ip",
"from" : "157.11.209.123",
"to" : "107.21.109.254"
}
{
"date" : ISODate("2014-05-15T00:00:00.000Z"),
"field" : "ip",
"from" : "107.21.109.254",
"to" : "157.11.209.123"
}
{
"date" : ISODate("2014-06-09T00:00:00.000Z"),
"field" : "registration",
"from" : "Old service",
"to" : "Some new service"
}
Dann möchte ich machen typische SQL-Abfrage konvertieren, das Vorkommen und die Gruppe durch field
zählt. Also, ich habe Abfrage erstellt in MongoDB
db.changes.group({
"key": {
"field": true
},
"initial": {
"count": 0,
},
"reduce": function(obj, prev) {
prev.count++;
},
});
Es funktioniert gut, aber wie kann ich wandeln es in Arbeiten mit Laravel 4? Ich benutze jenssegers/laravel-mongodb um mit dem Mongo Server zu kommunizieren.
Darüber hinaus habe ich mehr Bedingungen in der Abfrage, die ich entfernt habe, um meine Frage klarer aussieht, so suche ich nach Lösung, genau diese Abfrage in Laravel zu konvertieren, nicht andere mögliche Lösungen :).
Ok, das funktioniert super, aber es gibt einen möglichen Nachteil. Ich muss alles in einem Zeitraum (innerhalb der letzten Woche und letzten Monat) berechnen. Ich möchte keine 2 Abfragen ausführen, während ich eine erstellen kann. Ich habe meine ursprüngliche Abfrage angehängt. Wie kann ich in Ihrem Beispiel benutzerdefinierte Reduce-Funktion ausführen? –
@estshy Es ist wirklich keine gute Idee, deine Frage so zu ändern, wie du es hast. Es ist sehr irreführend für Leute, die mitkommen und sehen, dass die gegebenen Antworten nicht dem entsprechen, was Sie gefragt haben. Wenn du eine andere Frage postest, werde ich wie andere glücklich sein, sie zu beantworten. Der allgemeine Fall ist hier eine Frage und eine Antwort. Ich kann deine zusätzliche Frage beantworten, aber es sollte eine ganz andere Frage sein. Bitte poste es separat. –