我有一個包含updated_at時間戳的帖子集合。我想批量獲取文檔,按照updated_at timestamp(最新的第一個)排序,而不使用跳過(因爲它以較大的值減慢)。我可以將集合中最後一個文檔的時間戳傳遞給下一個查詢,並使用{$lt => last_time_stamp}
來獲取下一批,但不能保證updated_at是唯一的(可以同時有多個插入/寫入)。另一種方法是,我使用$ lte並放棄客戶端的重複條目(同樣,如果批量大小僅包含重複條目,即批次中的所有條目都發布在相同時間戳上,則這可能是錯誤的)。請注意,updated_at時間戳在某些特定事件上發生變化,所以我不能依靠BSON id進行排序。Mongodb:根據時間戳生成一個排序標識符(唯一),類似於BSON編號
如何確保我使用updated_at時間戳獲取(創建)一個唯一標識爲BSON ID,以及每當updated_at發生更改時如何更改它,以便更改訂單。我在rails應用程序中使用mongoid。
有沒有其他方法可以實現這一目標?目前,我這樣的查詢:
Post.desc(:updated_at).where(:user => user).where(:updated_at.lt => last_entry_timestamp).limit(10)