mysql - mongo如何对一个collection进行顺序上的调整呢?
怪我咯
怪我咯 2017-04-17 14:50:57
0
3
587

如题目所说,我这里在mongo中有一个collection,需要往里面插入一些数据,但是我想把插入的这几个数据在这个collection的前几位显示,大家有什么好的办法没?在此先谢过了

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(3)
洪涛

一個 collection 裡的自然順序是由 mongodb 自己管理的,你控制不了。如果你需要以某種順序使用數據,那就直截了當地告訴 mongodb 按什麼排序。

伊谢尔伦

使用mongodb的排序功能吧, 你可以在你插入的資料上取一個可以用於排序的欄位
升序或是降序排列,1是升,-1是降

db.coll.find({}).sort({'字段': 1})
伊谢尔伦

很遺憾你要做的事情沒有辦法實現。從JSON規範可以看出

An object is an unordered set of name/value pairs.

集合是無序的,所以沒有辦法控制顯示的時候元素出現的位置。
不過換個角度想想,這樣的功能其實對你來說沒有太大意義。

  • 如果是在應用程式中,你展現給使用者的順序是你自己定義的順序,跟本身的元素出現順序無關;

  • 如果在資料庫中,實際上只有資料庫管理員能看到,這個順序也只對某個管理員有意義;

在我看來這不是一個很難的功能,之所以沒有實現,因為沒有什麼實用價值,而只會拖慢數據庫的速度,這就有違數據庫本身的價值觀了:數據庫的主要目的是有效率地為你提供數據,不是以不同的形式展現數據,展現數據應該是應用要關心的事情。如果你實在想看某幾個值,應該透過projection來控制輸出的元素而不是依賴原來的順序。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!