在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)/ mongodb如何獲得集合中所有最后更新的一批數(shù)據(jù)?

mongodb如何獲得集合中所有最后更新的一批數(shù)據(jù)?

標(biāo)題的表述應(yīng)該有問(wèn)題。不過(guò)不知道怎么簡(jiǎn)單描述。

情況是這樣的,一個(gè)集合,每隔幾天會(huì)更新一批數(shù)據(jù),他們都有當(dāng)天統(tǒng)一的一個(gè)時(shí)間戳。
有沒(méi)有一種更有效率的寫法能夠直接獲得所有時(shí)間戳為最近的記錄的方法?

目前的處理手法是
collection.find().sort('timestamp', pymongo.DESCENDING).limit(1)
得到一個(gè)最近的一個(gè)時(shí)間戳

然后在
collection.find({‘timestamp’:最近時(shí)間戳})

總覺(jué)得在哪看到過(guò)更簡(jiǎn)潔的寫法,
求助。

回答
編輯回答
愿如初

綜合考慮效率和難易程度,我覺(jué)得你這樣寫法沒(méi)有問(wèn)題,除此之外我也沒(méi)有想出來(lái)特別好的替代方案。不知道你說(shuō)的『更簡(jiǎn)潔』的寫法是不是aggregation中g(shù)roup+$push的寫法。如果是的話那樣的寫法不如現(xiàn)在的效率好,并且有返回結(jié)果過(guò)大時(shí)異常的可能性。
不過(guò)有些額外的問(wèn)題我想說(shuō)明一下。即使是一批更新的數(shù)據(jù),timestamp不見(jiàn)得一樣吧;或者說(shuō)不是一批更新的文檔timestamp不見(jiàn)得不一樣。要區(qū)分『一批更新』這個(gè)概念,同一批更新的文檔必須要有一個(gè)唯一的『批次號(hào)』,可以是ObjectId或是GUID。建議ObjectId,它比較短所以性能略好。

2017年4月13日 12:11