public class DayData
{
public string _id
{get;set;}
public string Data
{get;set;}
public HourData HR1
{get;set;}
public HourData HR2
{get;set;}
...
public HourData HR24
{get;set;}
}
public class HourData
{
public long _id
{get;set;}
public int Count
{get;set;}
public string Data
{get;set;}
}
// Пример данных
{
"_id": "2012_11_10",
"Data": "some data",
"HR1":
{
"_id": 1
"Count": 100,
"Data": "Hour 1 Data"
},
"HR2":
{
"_id": 2
"Count": 200,
"Data": "Hour 2 Data"
},
...
"HR24":
{
"_id": 24
"Count": 2400,
"Data": "Hour 24 Data"
}
}
У меня есть следующие вопросы (с использованием официального драйвера C #):
Как получить один документ HourData из коллекции DayData (с помощью одного запроса к базе данных)? например Мне нужно получить документ HourData HR1 для DayData (где _id = "2012_11_10"). Пожалуйста, обратитесь к фрагменту кода, который я пробовал, как Edit-1.
Как обновить / добавить документ HourData, чтобы увеличить его счетчик (с помощью одной операции с базой данных, например collection.update (Query, Update))? например Мне нужно увеличить количество HR1 для DayData (где _id = "2012_11_10").
Как получить сумму всех значений Count HR1, HR2, ..., HR24 для DayData (где _id = "2012_11_10") (с помощью некоторой агрегатной функции).
Как лучше всего преобразовать HourData Counts всех часов в массив (для любых DayData). например для DayData с _id = "2012_11_10" мне нужно:
int [] Количество = [100,200,300, ..., 2400]
Редактировать-1
С помощью этого кода я намерен получить HourData для HR1, где его _id = 1, и DayData с _id = "2012_11_10", но он ничего не возвращает.
MongoCollection<HourData> dayInfo = mdb.GetCollection<HourData>("HourData");
var query = Query.And(Query.EQ("_id", "2012_11_10"), Query.EQ("HR1._id", 1));
MongoCursor<HourData> hri = dayInfo.Find(query);'
DayData
, но затем вы запрашиваете коллекциюHourData
в своем коде. Здесь одна или две коллекции? - person JohnnyHK   schedule 15.11.2012