Actualizar documento usando el resultado de campos concatenados
Considere una colección con los siguientes documentos
{
"_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"
}
En esta salida simplificada, tengo eventos que han tenido sus horas de inicio, hora de finalización y fechas ingresadas como cadenas. ¿Cómo puedo usar campos en unupdate()
que usan los datos existentes para calcular nuevos datos Date () formados correctamente, que realmente puedo consultar.
Lo siguiente funciona para crear un nuevo campo "iso_start"
db.events.update({},{$set: {iso_start:Date()}},{multi: true})
Me imaginé que sería capaz de construir una especie de actualización-selección como esta
db.events.update({},{$set: {iso_start:Date(date + " " + time)}},{multi: true})
ydb.events.update({},{$set: {iso_end:Date(date + " " + time)}},{multi: true})
pero aparece el error "la fecha no está definida".
Actualizar:this.date
ythis.time
hizo que desapareciera el error no definido, sin embargo, las fechas insertadas eran para la fecha y hora actual. Intenté escribirnew Date()
pero luego la fecha insertada fue ISODate ("0NaN-NaN-NaNTNaN: NaN: NaNZ")