0
我想弄清楚如何編寫我的查詢,但找不到正確的語法。mongodb查詢:在datetime上過濾,在id和count上的組
在下面的集合中,我們有包含0個或更多PageEvents的頁面。
我想從一個特定的日期開始將所有的PageEvents,他們分組在他們的唯一ID並計算他們發生了多少次。
- 條目1具有2頁,0 PageEvents
- 條目2具有1頁,1個PageEvent
- 條目3具有1頁,2個PageEvents
- 條目4具有4頁,4個PageEvents(1各)
該查詢會給我所有具有給定日期後PageEvents條目: db.Interactions.find({ "Pages.PageEvents.DateTime" : { $gte: new ISODate("2017-03-02")} })
這就是我現在正在嘗試的......哪個不行。
任何人都可以指向正確的方向嗎?
db.Interactions.aggregate
([
{
$match : {
"Pages.PageEvents.DateTime" : { $gte: new ISODate("2017-03-02")}
}
},
{
$group : {
_id : "$Pages.PageEvents.Name",
count : {$sum: 1}
}
}
])
的交互集合:
{
"_id" : LUUID("50795925-2c4c-a54b-8062-249c3a2e5804"),
"_t" : "VisitData",
"OperatingSystem" : {
"_id" : "WinNT"
},
"Pages" : [
{
"DateTime" : ISODate("2017-02-24T14:18:43.951Z"),
"Duration" : 13411,
"VisitPageIndex" : 1
},
{
"DateTime" : ISODate("2017-02-24T14:18:57.362Z"),
"Duration" : 0,
"VisitPageIndex" : 2
}
],
"VisitPageCount" : 2
}
{
"_id" : LUUID("8b492132-926d-194a-9fd5-cf17bc1c9315"),
"_t" : "VisitData",
"OperatingSystem" : {
"_id" : "WinNT"
},
"Pages" : [
{
"DateTime" : ISODate("2017-03-02T14:40:21.579Z"),
"Duration" : 0,
"PageEvents" : [
{
"Name" : "Page error",
"Timestamp" : NumberLong(0),
"Data" : "/",
"DataKey" : "/",
"Text" : "The page '/' failed with message 'No layout'",
"PageEventDefinitionId" : LUUID("526b07b6-a97e-9742-b799-864acdcb0257"),
"DateTime" : ISODate("2017-03-02T14:40:21.617Z"),
"Value" : 0
}
],
"VisitPageIndex" : 1
}
],
"VisitPageCount" : 1
}
{
"_id" : LUUID("2977f06e-cf89-7640-9303-208793d52da7"),
"_t" : "VisitData",
"OperatingSystem" : {
"_id" : "WinNT"
},
"Pages" : [
{
"DateTime" : ISODate("2017-03-02T15:25:35.477Z"),
"Duration" : 0,
"PageEvents" : [
{
"Name" : "Page error",
"Timestamp" : NumberLong(0),
"Data" : "/",
"DataKey" : "/",
"Text" : "The page '/' failed with message 'No layout'",
"PageEventDefinitionId" : LUUID("526b07b6-a97e-9742-b799-864acdcb0257"),
"DateTime" : ISODate("2017-03-02T15:25:35.602Z"),
"Value" : 0
},
{
"Name" : "Long running request",
"Timestamp" : NumberLong(0),
"Data" : "5738",
"DataKey" : "5,739",
"Text" : "Request took 5,739ms to complete",
"PageEventDefinitionId" : LUUID("ff6a6fdc-a96a-3f42-a824-49f9ee741aa9"),
"DateTime" : ISODate("2017-03-02T15:25:37.610Z"),
"Value" : 0
}
],
"VisitPageIndex" : 1
}
],
"VisitPageCount" : 1
}
{
"_id" : LUUID("db3d29db-3936-8045-b1af-72c8f7ca5c1f"),
"_t" : "VisitData",
"OperatingSystem" : {
"_id" : "WinNT"
},
"Pages" : [
{
"DateTime" : ISODate("2017-04-06T11:57:11.132Z"),
"Duration" : 42197,
"PageEvents" : [
{
"Name" : "Page error",
"Timestamp" : NumberLong(0),
"Data" : "/",
"DataKey" : "/",
"Text" : "The page '/' failed with message 'No layout'",
"PageEventDefinitionId" : LUUID("526b07b6-a97e-9742-b799-864acdcb0257"),
"DateTime" : ISODate("2017-04-06T11:57:11.237Z"),
"Value" : 0
}
],
"VisitPageIndex" : 1
},
{
"DateTime" : ISODate("2017-04-06T11:57:53.330Z"),
"Duration" : 132869,
"PageEvents" : [
{
"Name" : "Page error",
"Timestamp" : NumberLong(0),
"Data" : "/",
"DataKey" : "/",
"Text" : "The page '/' failed with message 'No layout'",
"PageEventDefinitionId" : LUUID("526b07b6-a97e-9742-b799-864acdcb0257"),
"DateTime" : ISODate("2017-04-06T14:57:53.331Z"),
"Value" : 0
}
],
"VisitPageIndex" : 2
},
{
"DateTime" : ISODate("2017-04-06T15:00:06.199Z"),
"Duration" : 2765,
"Item" : {
"Version" : 0
},
"PageEvents" : [
{
"Name" : "Page error",
"Timestamp" : NumberLong(0),
"Data" : "/",
"DataKey" : "/",
"Text" : "The page '/' failed with message 'No layout'",
"PageEventDefinitionId" : LUUID("526b07b6-a97e-9742-b799-864acdcb0257"),
"DateTime" : ISODate("2017-04-06T12:00:06.200Z"),
"Value" : 0
}
],
"VisitPageIndex" : 3
},
{
"DateTime" : ISODate("2017-04-06T12:00:08.964Z"),
"Duration" : 0,
"PageEvents" : [
{
"Name" : "Page error",
"Timestamp" : NumberLong(0),
"Data" : "/",
"DataKey" : "/",
"Text" : "The page '/' failed with message 'No layout'",
"PageEventDefinitionId" : LUUID("526b07b6-a97e-9742-b799-864acdcb0257"),
"DateTime" : ISODate("2017-04-06T12:00:08.965Z"),
"Value" : 0
}
],
"VisitPageIndex" : 4
}
],
"VisitPageCount" : 4
}