2017-12-29 58 views
0

과거의 datetime이 60 분 미만인 데이터베이스 항목을 어떻게 필터링 할 수 있습니까?mongodb의 시간 차이

{"$subtract": ["$timestamp", "$marketstartime"]}

하지만 그 작동을 위해 항상 null을 반환 :

두 필드의 타임 스탬프와 marketstartime와 MongoDB를 다음과 같이 내 모든 문서에 입력 한 날짜의 것을 일부 날짜 작업을 시도했다. 왜?

DB를 나의 타임 스탬프 및 marketstartime 항목

다음과 같이이 정확해야 날짜 형식에 봐 : 2017-12-23 12:00:00.000Z

내가 해결하기 위해 노력하고있어 실제 질문 : 내가 가진 모든 항목을 얻을 수있는 방법 과거로부터 지금까지 60 분 미만의 타임 스탬프?

+0

가능한 복제 [두 날짜 사이의 객체를 찾기 MongoDB를 (https://stackoverflow.com/questions/2943222/find-objects-between-two-dates-mongodb는) – Veeram

+0

는 아니, 중복되지 않습니다 . 질문을 더 자세히 읽으십시오. 감사합니다 – Nickpick

+1

투표가 철회되었습니다. 죄송합니다. 두 날짜 필드 사이의 시간차라는 것을 알지 못했습니다. 컬렉션 및 전체 쿼리에서 샘플 문서를 추가해보십시오. $ 빼기는 밀리 초 단위의 차이를 제공해야합니다. – Veeram

답변

1

timestamp 값이 60 분 미만으로 설정된 문서에 대해 쿼리를 구성 할 수 있습니다. 의

from datetime import datetime, timedelta 

query = { 
    '$timestamp': { 
     '$lt': datetime.now() + timedelta(minutes=-60) 
    } 
} 

cursor = db.collection.find(query)