2016-07-12 1 views
1

색인이 expireAfterSeconds으로 설정되어 있습니다. 사용 방법 확인 db.my_collection.getIndexes()의 출력 만이 표시 될 때 CLI를 사용하여이 :db.my_collection.getIndex() 출력에서 ​​TTL을 볼 수없는 이유는 무엇입니까?

{ 
    "v": 1, 
    "key": { 
    "last_used_at": 1 
    }, 
    "name": "last_used_at_1", 
    "ns": "cms.user_sessions" 
} 

그냥 expireAfterSeconds 설정없이 일반 인덱스처럼 보인다.

expireAfterSeconds으로 색인이 생성되었는지 어떻게 확인할 수 있습니까?


다음은 색인을 생성하는 Ruby 코드입니다. 인덱스를 삭제하고이 코드를 여러 번 사용하여 다시 만들려고했습니다.

@user_sessions.indexes.create_many([ 
    {key: {token: 1}, unique: true}, 
    {key: {last_used_at: 1}, expireAfterSeconds: ttl} 
]) 

버전 정보 : 색인에 문제가

 
$ mongod --version 
db version v2.6.5 
2016-07-13T16:11:45.844+0200 git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6 

$ gem list | grep mongo 
mongo (2.2.5) 

답변

1

시도를 삭제하고 다시 작성하십시오. TTL은 당신이 db.name.getIndexes() 명령

[ 
    { 
     "v" : 1, 
     "key" : { 
      "_id" : 1 
     }, 
     "name" : "_id_", 
     "ns" : "test.eventlog" 
    }, 
    { 
     "v" : 1, 
     "key" : { 
      "lastModifiedDate" : 1.0 
     }, 
     "name" : "lastModifiedDate_1", 
     "ns" : "test.eventlog", 
     "expireAfterSeconds" : 3600.0 
    } 
] 
+0

에서 이미 것을 시도한 것을 얻을 것이다 설정

. 나는 여러 줄의 코드를 주석에 붙여 넣는 기분이 들지 않아서 내 질문을 업데이트했다. – Hubro

+0

mongod 버전으로 업그레이드해야합니다 : 3.2 ... – profesor79

+0

[문서에 따르면 MongoDB 버전은 expireAfterSeconds를 지원해야합니다.] (https://docs.mongodb.com/v2.6/reference/method/db.collection. ensureIndex/# db.collection.ensureIndex)이므로 문제가되지 않아야합니다. – Hubro

관련 문제