Update Dokument mit dem Ergebnis der verketteten Felder

Betrachten Sie eine Sammlung mit den folgenden Dokumenten

{
        "_id" : "aaaaaaaaaaaa",
        "title" : "Hello, World!",
        "date" : "Thursday, November 12, 2015",
        "time" : "9:30 AM",
        "endtime" : "11:30 AM"
},
{
        "_id" : "bbbbbbbbbbbb",
        "title" : "To B or not to B",
        "date" : "Thursday, November 12, 2015",
        "time" : "10:30 AM",
        "endtime" : "11:00 AM"
},
{
        "_id" : "cccccccccccc",
        "title" : "Family Time",
        "date" : "Thursday, November 12, 2015",
        "time" : "10:30 AM",
        "endtime" : "12:00 PM"
}

In dieser vereinfachten Ausgabe habe ich Ereignisse, deren Startzeiten, Endzeiten und Datumsangaben alle als Zeichenfolgen eingegeben wurden. Wie kann ich Felder in einem @ verwendeupdate(), die die vorhandenen Daten verwenden, um neue ordnungsgemäß gebildete Daten vom Typ Date () zu berechnen, die ich tatsächlich abfragen kann.

Das Folgende funktioniert, um ein neues "iso_start" -Feld zu erstellen

db.events.update({},{$set: {iso_start:Date()}},{multi: true})

Ich stellte mir vor, ich könnte so eine Art Update-Select erstellen

db.events.update({},{$set: {iso_start:Date(date + " " + time)}},{multi: true}) unddb.events.update({},{$set: {iso_end:Date(date + " " + time)}},{multi: true})

aber ich bekomme die Fehlermeldung "Datum ist nicht definiert."

Update:this.date undthis.time hat den nicht definierten Fehler behoben, die eingegebenen Datumsangaben beziehen sich jedoch auf das aktuelle Datum und die aktuelle Uhrzeit. Ich habe versucht, @ zu schreibnew Date() aber dann war das eingefügte Datum ISODate ("0NaN-NaN-NaNTNaN: NaN: NaNZ")

Antworten auf die Frage(2)

Ihre Antwort auf die Frage