mysql - mongo如何對一個collection進行順序上的調整呢?
問題描述
如題目所說,我這里在mongo中有一個collection,需要往里面插入一些數據,但是我想把插入的這幾個數據在這個collection的前幾位顯示,大家有什么好的辦法沒?在此先謝過了
問題解答
回答1:一個 collection 里的自然順序是由 mongodb 自己管理的,你控制不了。如果你需要按某種順序使用數據,那就直截了當地告訴 mongodb 按什么排序。
回答2:使用mongodb的排序功能吧, 你可以在你插入的數據上取一個可以用于排序的字段升序或是降序排列,1是升,-1是降
db.coll.find({}).sort({’字段’: 1})回答3:
很遺憾你要做的事情沒有辦法實現。從JSON規范可以看出
An object is an unordered set of name/value pairs.
集合是無序的,所以沒有辦法控制顯示的時候元素出現的位置。不過換個角度想想,這樣的功能其實對你來說沒有多大意義。
如果是在應用中,你展現給用戶的順序是你自己定義的順序,跟本身的元素出現順序無關;
如果在數據庫中,實際上只有數據庫管理員能看到,這個順序也只對某個管理員有意義;
在我看來這不是一個很難的功能,之所以沒有實現,因為沒有什么實用價值,而只會拖慢數據庫的速度,這就有違數據庫本身的價值觀了:數據庫的主要目的是高效地為你提供數據,不是以不同的形式展現數據,展現數據應該是應用要關心的事情。如果你實在想看某幾個值,應該通過projection來控制輸出的元素而不是依賴原來的順序。
相關文章:
1. nignx - docker內nginx 80端口被占用2. docker內創建jenkins訪問另一個容器下的服務器問題3. macos - MaxOS El Capitan本地Apache2.4停止服了,為什么 localhost 還可以訪問It Works ?4. javascript - 解釋下這種函數定義5. HTML表單操作標簽調用父相對URL6. javascript - 在 vue里面用import引入js文件,結果為undefined7. node.js - npm一直提示proxy有問題8. docker api 開發的端口怎么獲取?9. 基于Spring MVC Java的配置無法正常工作控制臺顯示無錯誤,但我的jsp頁面未顯示10. javascript - 如何獲取未來元素的父元素在頁面中所有相同元素中是第幾個?
