確認すべき点がいくつかあります。
status
ドキュメントを T にたどり、ドキュメントに実際には存在しないフィールドにインデックスを作成しようとしただけですか? (少なくとも尋ねなければなりませんでした...)
status
フィールドに JUST が含まれていますかdates
? 理論的には混合できますが、日付タイプのドキュメントのみが有効期限切れと見なされます。
- コレクションのインデックスをチェックして、インデックスが正しく作成されていることを確認しましたか?
コンソールからインデックスを確認するには、次を実行しますdb.collection.getIndexes()
。インデックスが正常に作成された場合はstatus
、ドキュメントに対応するフィールドがあり、それらが適切な日付であることを再確認してください。
インデックスだけを追加しても、日付フィールドは作成されません。ドキュメントに追加するか、他のインデックスの一部ではない既存の日付フィールドを使用する必要があります。
また、ドキュメントから注意してください:
TTL インデックスは、60 秒ごとに実行されるバックグラウンド タスクでドキュメントを削除することにより、データを期限切れにします
そのため、有効期限がある場合は、ドキュメントの有効期限が切れて、バックグラウンド タスクが最後に実行された時期に応じて、ドキュメントが最大、ギブまたはテイク120 second
のままになる可能性があることに注意してください。120 seconds
179 seconds
edit : コメントに記載されているように、TTL インデックスに基づいてコレクション自体を削除することはできません。インデックスはコレクション内のドキュメントのみを期限切れにします。