我想在aggegration中这样过滤。这是一个mongoose查询的例子。我想在aggegration中做同样的事情。我想做的是在2016-06-01T22:52:46Z和2016-06-02T22:52:46Z和其他值之间进行所有测量
<body ng-app="adt">
<div ng-controller="MainCtrl>
<a href="#" ng-click="addOne()">AddNumber</a>
{{numberCounter}}
</div>
<div ng-view=""></div>
</body>
这是我尝试的但它没有做同样的工作。 IDE说出了公开的密钥&#39; date&#39;
Measurement
.find({})
.or([{
'date': {
'$gte': ISODate('2016-06-01T22:52:46Z'),
'$lte': ISODate('2016-06-02T22:52:46Z')
}
}, {
'date': {
'$gte': ISODate('2016-06-10T22:52:46Z'),
'$lte': ISODate('2016-06-11T22:52:46Z')
}
}, {
'date': {
'$gte': ISODate('2016-06-14T22:52:46Z'),
'$lte': ISODate('2016-06-15T22:52:46Z')
}
}, {
'date': {
'$gte': ISODate('2016-06-26T22:52:46Z'),
'$lte': ISODate('2016-06-27T22:52:46Z')
}
}])
.exec();
答案 0 :(得分:1)
你有一些数据的例子吗? 试试这段代码:
db.measurements.aggregate([{
$match: {
$or: [
{ date: {
'$gte': ISODate('2016-06-01T22:52:46Z'),
'$lte': ISODate('2016-06-02T22:52:46Z')
}},
{ date: {
'$gte': ISODate('2016-06-10T22:52:46Z'),
'$lte': ISODate('2016-06-11T22:52:46Z')
}},
{ date: {
'$gte': ISODate('2016-06-14T22:52:46Z'),
'$lte': ISODate('2016-06-15T22:52:46Z')
}},
{ date: {
'$gte': ISODate('2016-06-26T22:52:46Z'),
'$lte': ISODate('2016-06-27T22:52:46Z')
}}
]
}
}]);