3
我有一个MongoDB的用户以下集合:蒙戈:从放置在一个对象数组选择X元素
{
"_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
}]
}
是否可以写一个查询它通过让我得到了用户的ID 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;
}
哇!感谢那个超级快速的回答!对我的架构来说不是至关重要的,所以我最终修改了一些代码。会把它放在那里。再次感谢! :) – saurabhj