首頁  >  問答  >  主體

mysql - mongo如何对一个collection进行顺序上的调整呢?

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

怪我咯怪我咯2741 天前586

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-04-17 14:52:57

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

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 14:52:57

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

    db.coll.find({}).sort({'字段': 1})

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 14:52:57

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

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

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

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

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

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

    回覆
    0
  • 取消回覆