Mongo 개체에서 생성된 날짜를 추출하려면 어떻게 해야 합니까?아이디
Mongo 쉘을 사용하여 Mongo DB를 조회하고 있습니다.오브젝트에 포함된 타임스탬프를 사용하고 싶다.ID는 쿼리의 일부이며 출력에 추출할 열로도 사용됩니다.오브젝트를 작성하도록 Mongo를 설정했습니다.아이디 자체입니다.
문제는 오브젝트를 사용하는 방법을 찾을 수 없다는 것입니다.타임 스탬프를 추출하는 ID.
다음은 제가 작업하고자 하는 질문입니다.'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});
getTimestamp()
필요한 기능은 다음과 같습니다.이 기능은 이미 셸에 포함되어 있습니다.
ObjectId.prototype.getTimestamp = function() {
return new Date(parseInt(this.toString().slice(0,8), 16)*1000);
}
레퍼런스
다음 항을 문서에서 확인하십시오.
이 유닛 테스트에서도 같은 상태가 됩니다.
Mongo 쉘 사용 예:
> 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")
이 질문은 쿼리 상황에서 _id에 포함된 타임스탬프를 사용하는 방법을 이해하는 데 도움이 됩니다(Mongo 확장 JSON 문서 참조).방법은 다음과 같습니다.
col.find({...,
'_id' : {'$lt' : {'$oid' : '50314b8e9bcf000000000000'}}
})
oid에서 지정한 문서보다 먼저 작성된 문서를 찾습니다.자연스러운 정렬 및 제한과 함께 사용하면 BSON - ids를 사용하여 Twitter와 같은 API 쿼리를 생성할 수 있습니다(최종 OID를 알려주시면 20개 추가 제공).
python에서는 다음과 같이 할 수 있습니다.
>>> 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
ObjectId에 포함된 타임스탬프를 사용하고 특정 날짜 이후에 작성된 문서를 반환하려면$where
기능을 가지고 있습니다.
예.
db.yourcollection.find( {
$where: function() {
return this._id.getTimestamp() > new Date("2020-10-01")
}
});
함수는 결과에 포함시키기 위해 해당 문서의 truthy 값을 반환해야 합니다.참조: $where
하지만 몽고 대추는 좀 특이해 보일 수 있다.컨스트럭터에 대한 자세한 내용은 mongo Date() 문서를 참조하십시오.
발췌:
You can specify a particular date by passing an ISO-8601 date string with a year within the inclusive range 0 through 9999 to the new Date() constructor or the ISODate() function. These functions accept the following formats:
new Date("<YYYY-mm-dd>") returns the ISODate with the specified date.
new Date("<YYYY-mm-ddTHH:MM:ss>") specifies the datetime in the client’s local timezone and returns the ISODate with the specified datetime in UTC.
new Date("<YYYY-mm-ddTHH:MM:ssZ>") specifies the datetime in UTC and returns the ISODate with the specified datetime in UTC.
new Date(<integer>) specifies the datetime as milliseconds since the Unix epoch (Jan 1, 1970), and returns the resulting ISODate instance.
언급URL : https://stackoverflow.com/questions/7327296/how-do-i-extract-the-created-date-out-of-a-mongo-objectid
'source' 카테고리의 다른 글
Android에서 React Native가 빌드 도구를 찾지 못했습니다. (0) | 2023.03.28 |
---|---|
ReactJS에서 객체를 매핑하려면 어떻게 해야 합니까? (0) | 2023.03.28 |
Oracle 데이터베이스의 서버 이름 찾기 (0) | 2023.03.28 |
React-Redux 앱은 Backbone과 같이 확장할 수 있습니까?재선택을 해도.온모바일 (0) | 2023.03.28 |
위조 방지 제품을 제공하려면 어떻게 해야 합니까?$.ajax를 사용하여 JSON 데이터를 게시할 때 토큰? (0) | 2023.03.28 |