0

나는 이것을 마치 aggegration에서 필터링하려고합니다. 다음은 몽구스 쿼리의 예입니다. 내가 같은 일을하고 싶다. 46Z 및 2016-06-02T22 : 52 : 내가 뭘 원하는 모든 측정 2016-06-01T22 사이 얻을 수있다 52 : 46Z 다른 값은

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(); 

이 내가 시도했지만하지 않았다 것입니다 같은 일을해라. 그리고 IDE에서 공개 키 날짜 '라고 말합니다.

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') 
     } 
    }] 
    } 
}]); 

답변

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') 
     }} 
    ] 
    } 
}]); 
+0

정말 고마워요! – Tim

+0

내 표창 : MongoDb cources를 가져 가십시오. 그것은 무료이며 매우 도움이됩니다. https://university.mongodb.com/ –

관련 문제