Meteor Collection は、mongodbのTTL (Time to live) 機能を使用する方法を提供しますか? これは、一時データを使用する一種のマルチユーザー セッションに必要です。変更が完全に反応的であることは重要ではありません。
1 に答える
この回答の 2 つの部分:
1) インデックスを適用するには、Meteor で _ensureIndex メソッドを使用できますが、_ が示すように、このサポートはいつでもプルできます。渡すことができるものに関しても制限があるかもしれませんが、次のような単純なものの場合
db.log.events.ensureIndex( { "status": 1 }, { expireAfterSeconds: 3600 } )
.. 次に、mongo-livedata の標準実装
self._collection._ensureIndex(index, options);
...で十分なはずです。
2) テストはしていませんが、TTL が機能することは確かです。(一方で、キャップ付きコレクションをテストしましたが、動作します)。おわかりのように、データの変更を取得するという点で DDP が行うことは 2 つあります。
- meteorが駆動したことがわかっているすべての書き込み操作の後にmongoをポーリングします
- とにかく10秒ごとにmongoをポーリングします(帯域外更新用)
その 2 番目の部分は、手動で mongo シェルに移動し、削除/追加/更新することができ、その後 10 秒以内に変更が反映されることを意味します。
その上で、反応するまでの 10 秒の遅延に満足している場合は、TTL が機能するはずです。
これに満足できない場合は、Arunoda のスマート コレクションを試すことができます。詳細については、http://meteorhacks.com/introducing-smart-collections.html を参照してください。それらは oplog (ある場合) から読み取るため、反応性の遅延を減らすことができます。この概念は興味深いものですが、David Glasser がこの投稿でカバーしている制限があることに注意してください: https://groups.google.com/d/msg/meteor-talk/h-ulU7guh1Y/nTfJ1F8uGxwJ
いずれにせよ、幸運を祈ります。あなたの調子を教えてください。