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")