John Nunemaker는 Mongo ObjectIds에 대한 유용한 정보가 담긴 블로그 게시물을 가지고 있습니다. http://mongotips.com/b/a-few-objectid-tricks/ - 특히 generation_time에 대한 팁에 관심이있었습니다. 그는 mongo 문서에 created_at 시간을 명시 적으로 저장하지 않아도된다는 사실을 알았습니다. 항상주의를 기울인 ID에서 가져올 수 있기 때문입니다. 문제는 내가 mongomapper에서 생성 된 문서를 찾기 위해 mongo 쿼리를 생성하는 방법을 알아낼 수 없다는 것입니다.mongo ids에 generation_time을 쿼리하는 중
나는 키를 저장하는 경우 : 나는 모든 문서는이 같은 12 월 1 일 이후 생성 얻을 mongomapper에 쿼리를 할 수있는 문서의 한 부분으로 created_at을 :
에 매핑Foo.where(:created_at.gt=>Time.parse("2011-12-01"))
(:
{created_at: {"$gt"=>Thu Dec 01 06:00:00 UTC 2011}}
ObjectId를 사용하여 동일한 쿼리를 작성하는 방법을 알아낼 수 없습니다.이 함수는 다음과 같이 보일 것이라고 생각합니다. (분명히 generation_time은 루비 함수이지만, objectid에 사용할 수있는 동등한 함수가 있습니다. 몽고 쿼리 문맥?)
Foo.where('$where'=>"this.id.generation_time > new Date('2011-12-01')")
{$where: "this.id.generation_time > new Date('2011-12-01')"}
또 다른 질문 : 별도의 타임 스탬프를 저장하지 않으면 mongodump를 사용하여 데이터베이스를 덤프하고 복원하면 타임 스탬프 메타 데이터가 손실됩니까? ObjectId를 보존하는 권장 백업/복원 기술이 있습니까?
좋습니다. 그래서 여기에있는 아이디어는 내가 조회 한 시간부터 작성된 ID와 ID를 비교하는 것입니다. 그래서 이드는 생성 시간에 따라 단조롭게 증가 할 것인가? – Bee
@Bee : 맞습니다. –