복붙노트

[MONGODB] 나는 몽고 OBJECTID의 생성 날짜를 추출하려면 어떻게

MONGODB

나는 몽고 OBJECTID의 생성 날짜를 추출하려면 어떻게

내 몽고의 DB를 조회 할 몽고 쉘을 사용하고 있습니다. 내 쿼리의 일환으로도 출력에 추출물에 열로 OBJECTID에 포함 된 타임 스탬프를 사용하고 싶습니다. 내가 설정 몽고는 그 자체로하며 Object를 생성해야합니다.

내 문제는 내가 그 타임 스탬프를 추출하는 ObjectId가 함께 작동하는 방법을 찾을 수있다.

여기에 내가 작업을 얻으려고 노력하고있는 쿼리입니다. 'createdDate'필드는 자리 표시 자입니다; 확실하지 올바른 분야는 무엇입니까 :

//Find everything created since 1/1/2011
db.myCollection.find({date: {$gt: new Date(2011,1,1)}});

//Find everything and return their createdDates
db.myCollection.find({},{createdDate:1});

해결법

  1. ==============================

    1.당신이 필요로하는 기능은이 쉘에 당신을 위해 이미 포함되어있어, 이것이다 :

    당신이 필요로하는 기능은이 쉘에 당신을 위해 이미 포함되어있어, 이것이다 :

    ObjectId.prototype.getTimestamp = function() {
        return new Date(parseInt(this.toString().slice(0,8), 16)*1000);
    }
    

    워드 프로세서에서이 부분을 체크 아웃 :

    이 단위 테스트도 같은 보여줍니다

    > db.col.insert( { name: "Foo" } );
    > var doc = db.col.findOne( { name: "Foo" } );
    > var timestamp = doc._id.getTimestamp();
    
    > print(timestamp);
    Wed Sep 07 2011 18:37:37 GMT+1000 (AUS Eastern Standard Time)
    
    > printjson(timestamp);
    ISODate("2011-09-07T08:37:37Z")
    
  2. ==============================

    2.이 질문은 질의 상황에서 _id의 임베디드 타임 스탬프를 사용하는 방법을 이해하는 것이 도움이된다합니다 (몽고 확장 JSON 문서를 참조). 이것은 어떻게하는지입니다 :

    이 질문은 질의 상황에서 _id의 임베디드 타임 스탬프를 사용하는 방법을 이해하는 것이 도움이된다합니다 (몽고 확장 JSON 문서를 참조). 이것은 어떻게하는지입니다 :

    col.find({..., 
         '_id' : {'$lt' : {'$oid' : '50314b8e9bcf000000000000'}} 
    })
    

    발견 문서는 이전 OID에 의해 주어진 것 아닌 만들었습니다. 자연 정렬과 함께 사용하고 API 쿼리 트위터처럼 만들 BSON의 _ids을 이용할 수 제한 (나에게 당신이 가지고있는 마지막 OID를주고 좀 더 스물를 제공 할 수 있습니다)

  3. ==============================

    3.파이썬에서 당신은이 작업을 수행 할 수 있습니다

    파이썬에서 당신은이 작업을 수행 할 수 있습니다

    >>> from bson.objectid import ObjectId
    >>> gen_time = datetime.datetime(2010, 1, 1)
    >>> dummy_id = ObjectId.from_datetime(gen_time)
    >>> result = collection.find({"_id": {"$lt": dummy_id}})
    

    내가 생각 ObjectId.from_datetime () - 표준 bson lib 디렉토리의 그것의 유용한 방법 아마 다른 언어 바인딩은 다른 내장 기능을 가지고있다. 출처 : http://api.mongodb.org/python/current/api/bson/objectid.html

  4. from https://stackoverflow.com/questions/7327296/how-do-i-extract-the-created-date-out-of-a-mongo-objectid by cc-by-sa and MIT license