Во-первых, вы должны определить самый часто возникающий вопрос. Скорее всего, он таков - найти город по его номеру (_id) или по названию (city), и вывести последнюю зарегистрированную инфу, причём не важно, когда именно была эта инфа (то есть время и дата не будут участвовать в условии запроса). А иногда нужно для города вывести всю доступную инфу (например, в виде графика), и тогда нужна уже вся коллекция данных, в том числе и инфа о дате и времени.
Тогда вам нужна такая схема: в документе храните последнюю запись о погоде. А для истории завести внутреннюю коллекцию, в которую постепенно заносить устаревающие данные.
{
_id : ObjectID(),
city: rubtsovsk,
forecast : {
date: 27.07.2014,
time: 18:30,
current_temp_c : 19,
current_temp_f : 60,
cloud_title : "пасмурно",
precip_title : "без осадков"
},
forecasts : [
{
date: 27.07.2014,
time: 6:30,
current_temp_c : 19,
current_temp_f : 60,
cloud_title : "пасмурно",
precip_title : "без осадков"
},
{
date: 26.07.2014,
time: 18:30,
current_temp_c : 19,
current_temp_f : 60,
cloud_title : "пасмурно",
precip_title : "без осадков"
}
]
}
Плюс, я бы всё-таки заменил строковые данные "пасмурно","без осадков" на их коды, а конкретные строки вставлял в программе. Хотя бы чтобы учесть возможность последующей локализации.