MongoDBは、ソートが指定されていない場合、MongoDBが挿入順にアイテムを返すことを保証していないため、挿入順序を保持したり、信頼できるタイムスタンプを設定することは可能ですか?ドキュメントの_idがランダムに生成され、クライアントの時計に依存していますか?Meteorでタイムスタンプを使用して挿入順序を保持する方法は?
4
A
答えて
7
私は方法を提案します。
Meteor.methods({
addItem: function (doc) {
doc.when = new Date;
return Items.insert(doc);
}
});
クライアントがローカルでこれを実行すると、自身の現在の時刻にwhen
を設定しますが、サーバーのタイムスタンプが優先され、元のクライアントを含むすべてのサブスクライブクライアントに伝播します。 doc.when
で並べ替えることができます。
おそらくドキュメントの検証とアクセス許可の一部としてタイムスタンプを自動的に設定するためのフックを追加します。
1
あなたはこの空想Date.unow
機能(することができます安全に並べ替えるには多くの文書が同じタイムスタンプを挿入した場合でも)と一緒に、これらのコレクションのフック(https://gist.github.com/matb33/5258260)のようなものを使用して喜んでいる場合:
if (!Date.unow) {
(function() {
var uniq = 0;
Date.unow = function() {
uniq++;
return Date.now() + (uniq % 5000);
};
})();
}
if (Meteor.isServer) {
// NOTE: this isn't vanilla Meteor, and sometime in the future there may be
// a better way of doing this, but at the time of writing this is it:
Items.before("insert", function (userId, doc) {
doc.created = Date.unow();
});
}
関連する問題
- 1. エンティティフレームワークは、データベースに挿入するときに順序を保持しますか?
- 2. 特定の順序で挿入をバッチする方法は?
- 3. RubyのSetは、常に挿入順序を保持しますか?
- 4. Java - 重複した挿入順序を保持するPriorityQueueの代替品
- 5. 挿入順序を維持するコンカレントセットを実装する方法
- 6. Rubyはハッシュの挿入順序を維持します
- 7. 挿入されたレコードの順序を識別する方法
- 8. バインディングの順序バインディングの順序を保証する方法
- 9. 順序を挿入し維持し、そのインデックス
- 10. マッピング順序を使用する方法
- 11. psycopg2.extras.RealDictCursorを使用して列の順序を維持する方法
- 12. Postgresとoracleは挿入順序を維持していますか?
- 13. ハッシュテーブルの要素の順序を保持する方法
- 14. Sqlite INSERTの順序を保持する方法
- 15. 行挿入順序エンティティ・フレームワーク
- 16. タイムスタンプをレールデータベースに挿入する方法
- 17. Railsで関連するレコードの順序を保持する方法は?
- 18. LinkedHashMapのkeySet()から作成されたArrayListは、挿入順序を保持していますか?
- 19. ExecutorServiceユニットテストを使用してテストケースを順序付ける方法
- 20. タイムスタンプを保持する方法gsutil cp
- 21. Meteorを使用してHTMLマークアップを挿入
- 22. 私は、挿入順序を保持する不変のキーと値の構造が必要です
- 23. jQuery append()を使ってDOMを広範に挿入する方法(正しい順序)
- 24. TensorflowのQueueBase.enqueue_manyはスレッド間で順序を保持しますか?
- 25. XML配列からハッシュ変換への順序を保持する方法は?
- 26. 文字列キーを使ってLuaテーブルの順序を保持する方法は?ここ
- 27. Laravel belongsToMany挿入クエリのテーブル順序
- 28. 順序付きリンクリストへの挿入
- 29. データフレームのレベルの順序を保存する方法は?
- 30. URLEncodedUtils.parse()は順序を保持しますか?
偉大な、その作品、ありがとう! –
'Date'オブジェクトの格納が機能するようになったので、実際にあなたの日付をmsで保存しない限り、必ず' getTime'を呼び出す必要はありません。 –
かなり、ありがとう!更新しました。 – debergalis