У меня есть следующая коллекция для пользователя в MongoDB:
{
"_id" : 1,
"facebook_id" : XX,
"name": "John Doe",
"points_snapshot" : [{
"unix_timestamp" : 1312300552,
"points" : 115
}, {
"unix_timestamp" : 1312330380,
"points" : 110
}, {
"unix_timestamp" : 1312331610,
"points" : 115
}]
}
Можно ли написать один запрос, по которому я могу получить пользователя с идентификатором 1 вместе со снимками после определенного дня?,Например: 1312330300?
По существу, снимки ограничены числами X, соответствующими некоторым критериям?
До сих пор я пробовал в C #:
Query.And(
Query.EQ("facebook_id", XX),
Query.GTE("points_snapshot.unix_timestamp", sinceDateTimeStamp)))
.SetFields("daily_points_snapshot", "facebook_id")
, который я вскоре понял, будетне работает для того, что я хочу.
Любая помощь будет оценена!Спасибо!
РЕДАКТИРОВАТЬ: Мое решение для этого
Если кто-то хочет получить быстрое решение этой проблемы, это то, что я в итоге сделал:
var points = MyDatabase[COLLECTION_NAME]
.Find(Query.EQ("facebook_id", XX))
.SetFields("points_snapshot", "facebook_id")
.FirstOrDefault();
if (points != null) {
var pointsArray = points.AsBsonDocument["points_snapshot"].AsBsonArray
.Where(x => x.AsBsonDocument["unix_timestamp"].AsInt32 > sinceDateTimeStamp)
.ToList();
return pointsArray;
}