[MONGODB] MongoDB의 ID와 타임 스탬프를 얻기
MONGODBMongoDB의 ID와 타임 스탬프를 얻기
어떻게 MongoDB의 ID와 타임 스탬프를받을 수 있나요?
해결법
-
==============================
1.타임 스탬프는 MongoDB에 ID의 제 4 바이트 내에 포함된다 (참조 : http://www.mongodb.org/display/DOCS/Object+IDs 참조).
타임 스탬프는 MongoDB에 ID의 제 4 바이트 내에 포함된다 (참조 : http://www.mongodb.org/display/DOCS/Object+IDs 참조).
당신의 타임 스탬프입니다 그래서 :
timestamp = _id.toString().substring(0,8)
과
date = new Date( parseInt( timestamp, 16 ) * 1000 )
-
==============================
2.몽고 2.2이 변경된 (참조 : http://docs.mongodb.org/manual/core/object-id/)
몽고 2.2이 변경된 (참조 : http://docs.mongodb.org/manual/core/object-id/)
당신은 모든 몽고 쉘의 한 단계 내에서이 작업을 수행 할 수 있습니다 :
document._id.getTimestamp();
이 Date 객체를 반환합니다.
-
==============================
3.타임 스탬프는 깊은 MongoDB를 객체의 창자 내에서 매장된다. 함께 따라 서리가있어.
타임 스탬프는 깊은 MongoDB를 객체의 창자 내에서 매장된다. 함께 따라 서리가있어.
MongoDB의 쉘에 로그인
ubuntu@ip-10-0-1-223:~$ mongo 10.0.1.223 MongoDB shell version: 2.4.9 connecting to: 10.0.1.223/test
항목을 삽입하여 데이터베이스를 만듭니다
> db.penguins.insert({"penguin": "skipper"}) > db.penguins.insert({"penguin": "kowalski"}) >
거기 있는지 확인 :
> show dbs local 0.078125GB penguins 0.203125GB
데이터베이스 하나는 우리가 지금있는 것을 확인 할 수 있도록합니다
> use penguins switched to db penguins
자신에게 ISODate를 가져옵니다 :
> ISODate("2013-03-01") ISODate("2013-03-01T00:00:00Z")
일부 JSON 인쇄 :
> printjson({"foo":"bar"}) { "foo" : "bar" }
행을 다시 가져 오기 :
> db.penguins.find() { "_id" : ObjectId("5498da1bf83a61f58ef6c6d5"), "penguin" : "skipper" } { "_id" : ObjectId("5498da28f83a61f58ef6c6d6"), "penguin" : "kowalski" }
우리는 단지 하나 개의 행을 검사하려면
> db.penguins.findOne() { "_id" : ObjectId("5498da1bf83a61f58ef6c6d5"), "penguin" : "skipper" }
해당 행의 _id를 가져옵니다 :
> db.penguins.findOne()._id ObjectId("5498da1bf83a61f58ef6c6d5")
_id 개체에서 타임 스탬프를 가져 오기 :
> db.penguins.findOne()._id.getTimestamp() ISODate("2014-12-23T02:57:31Z")
마지막으로 추가 된 레코드의 타임 스탬프를 가져 오기 :
> db.penguins.find().sort({_id:-1}).limit(1).forEach(function (doc){ print(doc._id.getTimestamp()) }) Tue Dec 23 2014 03:04:53 GMT+0000 (UTC)
예 루프, 인쇄 문자열 :
> db.penguins.find().forEach(function (doc){ print("hi") }) hi hi
찾기 (동일 실시 예 루프), 행 인쇄
> db.penguins.find().forEach(function (doc){ printjson(doc) }) { "_id" : ObjectId("5498dbc9f83a61f58ef6c6d7"), "penguin" : "skipper" } { "_id" : ObjectId("5498dbd5f83a61f58ef6c6d8"), "penguin" : "kowalski" }
루프, 시스템 날짜를 얻을 :
> db.penguins.find().forEach(function (doc){ doc["timestamp_field"] = new Date(); printjson(doc); }) { "_id" : ObjectId("5498dbc9f83a61f58ef6c6d7"), "penguin" : "skipper", "timestamp_field" : ISODate("2014-12-23T03:15:56.257Z") } { "_id" : ObjectId("5498dbd5f83a61f58ef6c6d8"), "penguin" : "kowalski", "timestamp_field" : ISODate("2014-12-23T03:15:56.258Z") }
루프, 각 행의 날짜를 얻을 :
> db.penguins.find().forEach(function (doc){ doc["timestamp_field"] = doc._id.getTimestamp(); printjson(doc); }) { "_id" : ObjectId("5498dbc9f83a61f58ef6c6d7"), "penguin" : "skipper", "timestamp_field" : ISODate("2014-12-23T03:04:41Z") } { "_id" : ObjectId("5498dbd5f83a61f58ef6c6d8"), "penguin" : "kowalski", "timestamp_field" : ISODate("2014-12-23T03:04:53Z") }
그냥 날짜에 필터 아래로
> db.penguins.find().forEach(function (doc){ doc["timestamp_field"] = doc._id.getTimestamp(); printjson(doc["timestamp_field"]); }) ISODate("2014-12-23T03:04:41Z") ISODate("2014-12-23T03:04:53Z")
Filterdown 더 그냥 문자열 :
> db.penguins.find().forEach(function (doc){ doc["timestamp_field"] = doc._id.getTimestamp(); print(doc["timestamp_field"]) }) Tue Dec 23 2014 03:04:41 GMT+0000 (UTC) Tue Dec 23 2014 03:04:53 GMT+0000 (UTC)
날짜를 지정 유형을 얻을 베어 날짜를 인쇄 :
> print(new Date()) Tue Dec 23 2014 03:30:49 GMT+0000 (UTC) > typeof new Date() object > new Date("11/21/2012"); ISODate("2012-11-21T00:00:00Z")
YYYY-MM-DD로 날짜의 인스턴스를 변환
> print(d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()) 2014-1-1
각 행에 대해 YYYY-MM-DD 형식으로 그것을 얻을 :
> db.penguins.find().forEach(function (doc){ d = doc._id.getTimestamp(); print(d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()) }) 2014-12-23 2014-12-23
toLocaleDateString은 짧입니다 :
> db.penguins.find().forEach(function (doc){ d = doc._id.getTimestamp(); print(d.toLocaleDateString()) }) Tuesday, December 23, 2014 Tuesday, December 23, 2014
YYYY-MM-DD HH의 각 행을 가져 오기 : mm : ss 형식 :
> db.penguins.find().forEach(function (doc){ d = doc._id.getTimestamp(); print(d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate() + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds()) }) 2014-12-23 3:4:41 2014-12-23 3:4:53
마지막으로 추가 된 행의 날짜를 가져 오기 :
> db.penguins.find().sort({_id:-1}).limit(1).forEach(function (doc){ print(doc._id.getTimestamp()) }) Tue Dec 23 2014 03:04:53 GMT+0000 (UTC)
당신이 완료되면 데이터베이스를 삭제합니다 :
> use penguins switched to db penguins > db.dropDatabase() { "dropped" : "penguins", "ok" : 1 }
그것이 사라 졌어요 있는지 확인합니다 :
> show dbs local 0.078125GB test (empty)
이제 MongoDB를가 webscale입니다.
-
==============================
4.여기 모두를위한 빠른 PHP 함수이다)
여기 모두를위한 빠른 PHP 함수이다)
public static function makeDate($mongoId) { $timestamp = intval(substr($mongoId, 0, 8), 16); $datum = (new DateTime())->setTimestamp($timestamp); return $datum->format('d/m/Y'); }
-
==============================
5.서버 측에서 MongoDB를 ObjectId가의 _id하기
서버 측에서 MongoDB를 ObjectId가의 _id하기
날짜는 새로운 날짜 = (에서는 parseInt (_id.toString ()를. 서브 스트링 (0,8), 16) * 1000)
그리고 클라이언트 측의 사용에
var dateFromObjectId = function (objectId) { return new Date(parseInt(objectId.substring(0, 8), 16) * 1000); };
from https://stackoverflow.com/questions/6452021/getting-timestamp-from-mongodb-id by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] Node.js를 _id 노드 MongoDB를 네이티브로 문서를 선택하여 MongoDB (0) | 2019.12.21 |
---|---|
[MONGODB] ObjectId가 MongoDB의 작성시에 사용 (0) | 2019.12.21 |
[MONGODB] 이유는 MongoDB를 시작할 수 없습니다 (0) | 2019.12.21 |
[MONGODB] 왜 몽구스는 스키마와 모델 모두이 있습니까? (0) | 2019.12.21 |
[MONGODB] MongoDB를 수집에서 최신 기록을 가져 오기 (0) | 2019.12.21 |