mysql - mongo如何對一個collection進(jìn)行順序上的調(diào)整呢?
問題描述
如題目所說,我這里在mongo中有一個collection,需要往里面插入一些數(shù)據(jù),但是我想把插入的這幾個數(shù)據(jù)在這個collection的前幾位顯示,大家有什么好的辦法沒?在此先謝過了
問題解答
回答1:一個 collection 里的自然順序是由 mongodb 自己管理的,你控制不了。如果你需要按某種順序使用數(shù)據(jù),那就直截了當(dāng)?shù)馗嬖V mongodb 按什么排序。
回答2:使用mongodb的排序功能吧, 你可以在你插入的數(shù)據(jù)上取一個可以用于排序的字段升序或是降序排列,1是升,-1是降
db.coll.find({}).sort({’字段’: 1})回答3:
很遺憾你要做的事情沒有辦法實(shí)現(xiàn)。從JSON規(guī)范可以看出
An object is an unordered set of name/value pairs.
集合是無序的,所以沒有辦法控制顯示的時候元素出現(xiàn)的位置。不過換個角度想想,這樣的功能其實(shí)對你來說沒有多大意義。
如果是在應(yīng)用中,你展現(xiàn)給用戶的順序是你自己定義的順序,跟本身的元素出現(xiàn)順序無關(guān);
如果在數(shù)據(jù)庫中,實(shí)際上只有數(shù)據(jù)庫管理員能看到,這個順序也只對某個管理員有意義;
在我看來這不是一個很難的功能,之所以沒有實(shí)現(xiàn),因?yàn)闆]有什么實(shí)用價值,而只會拖慢數(shù)據(jù)庫的速度,這就有違數(shù)據(jù)庫本身的價值觀了:數(shù)據(jù)庫的主要目的是高效地為你提供數(shù)據(jù),不是以不同的形式展現(xiàn)數(shù)據(jù),展現(xiàn)數(shù)據(jù)應(yīng)該是應(yīng)用要關(guān)心的事情。如果你實(shí)在想看某幾個值,應(yīng)該通過projection來控制輸出的元素而不是依賴原來的順序。
相關(guān)文章:
1. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個是怎么回事????2. 運(yùn)行python程序時出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯誤?3. node.js - mongodb查找子對象的名稱為某個值的對象的方法4. html5 - datatables 加載不出來數(shù)據(jù)。5. javascript - QQ第三方登錄的問題6. 前端 - @media query 使用出現(xiàn)的問題?7. javascript - 在 model里定義的 引用表模型時,model為undefined。8. 利用IPMI遠(yuǎn)程安裝centos報錯!9. 測試自動化html元素選擇器元素ID或DataAttribute [關(guān)閉]10. html5和Flash對抗是什么情況?

網(wǎng)公網(wǎng)安備