鍍金池/ 問答/數(shù)據(jù)庫/ mongodb如何解決邊插入數(shù)據(jù),邊skip數(shù)據(jù)造成的相同結(jié)果

mongodb如何解決邊插入數(shù)據(jù),邊skip數(shù)據(jù)造成的相同結(jié)果

比如 第一次讀取skip10的數(shù)據(jù),
然后插入了10條數(shù)據(jù),這時候skip20的時候又是讀取到的上一次的數(shù)據(jù),這個問題應該如何解決?

回答
編輯回答
誮惜顏

這實際上是沒有問題的,因為你有新數(shù)據(jù)了啊,那原來的第一頁本來就是跑到第二頁了,所以你取第二頁就是原來的10條數(shù)據(jù)。如果為了防止新數(shù)據(jù)的干擾,可以帶上多一個條件,比如插入時間是從什么時間之前的,或者_id是從哪里開始。
關(guān)于多加一個條件:

  • _id的默認值是ObjectId,它實際上是帶有時間戳的;

  • 所以在查詢時多加一個條件{_id: {$lt: <id>}}就可以保證新的數(shù)據(jù)不會被查出來

這個問題實際跟MongoDB也無關(guān)的,使用關(guān)系數(shù)據(jù)庫一樣會出現(xiàn)這樣的情況,那么關(guān)系數(shù)據(jù)庫你會如何處理呢?

2018年6月28日 22:09