Обновить документ, используя результат объединенных полей
Рассмотрим коллекцию со следующими документами
{
"_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"
}
В этом упрощенном выводе у меня есть события, у которых были времена начала, окончания и даты, которые были введены как строки. Как я могу использовать поля вupdate()
которые используют существующие данные для вычисления новых правильно сформированных данных типа Date (), которые я могу фактически запросить.
Следующее работает для создания нового поля iso_start
db.events.update({},{$set: {iso_start:Date()}},{multi: true})
Я предполагал, что смогу создать что-то вроде выбора обновлений, как
db.events.update({},{$set: {iso_start:Date(date + " " + time)}},{multi: true})
а такжеdb.events.update({},{$set: {iso_end:Date(date + " " + time)}},{multi: true})
но я получаю ошибку "дата не определена".
Обновить:this.date
а такжеthis.time
сделал не определенную ошибку исчезнувшей, однако введенные даты были для текущей даты и времени. Я пытался писатьnew Date()
но тогда вставленная дата была ISODate («0NaN-NaN-NaNTNaN: NaN: NaNZ»)