mysql - mongo如何對(duì)一個(gè)collection進(jìn)行順序上的調(diào)整呢?
問(wèn)題描述
如題目所說(shuō),我這里在mongo中有一個(gè)collection,需要往里面插入一些數(shù)據(jù),但是我想把插入的這幾個(gè)數(shù)據(jù)在這個(gè)collection的前幾位顯示,大家有什么好的辦法沒(méi)?在此先謝過(guò)了
問(wèn)題解答
回答1:一個(gè) collection 里的自然順序是由 mongodb 自己管理的,你控制不了。如果你需要按某種順序使用數(shù)據(jù),那就直截了當(dāng)?shù)馗嬖V mongodb 按什么排序。
回答2:使用mongodb的排序功能吧, 你可以在你插入的數(shù)據(jù)上取一個(gè)可以用于排序的字段升序或是降序排列,1是升,-1是降
db.coll.find({}).sort({’字段’: 1})回答3:
很遺憾你要做的事情沒(méi)有辦法實(shí)現(xiàn)。從JSON規(guī)范可以看出
An object is an unordered set of name/value pairs.
集合是無(wú)序的,所以沒(méi)有辦法控制顯示的時(shí)候元素出現(xiàn)的位置。不過(guò)換個(gè)角度想想,這樣的功能其實(shí)對(duì)你來(lái)說(shuō)沒(méi)有多大意義。
如果是在應(yīng)用中,你展現(xiàn)給用戶(hù)的順序是你自己定義的順序,跟本身的元素出現(xiàn)順序無(wú)關(guān);
如果在數(shù)據(jù)庫(kù)中,實(shí)際上只有數(shù)據(jù)庫(kù)管理員能看到,這個(gè)順序也只對(duì)某個(gè)管理員有意義;
在我看來(lái)這不是一個(gè)很難的功能,之所以沒(méi)有實(shí)現(xiàn),因?yàn)闆](méi)有什么實(shí)用價(jià)值,而只會(huì)拖慢數(shù)據(jù)庫(kù)的速度,這就有違數(shù)據(jù)庫(kù)本身的價(jià)值觀了:數(shù)據(jù)庫(kù)的主要目的是高效地為你提供數(shù)據(jù),不是以不同的形式展現(xiàn)數(shù)據(jù),展現(xiàn)數(shù)據(jù)應(yīng)該是應(yīng)用要關(guān)心的事情。如果你實(shí)在想看某幾個(gè)值,應(yīng)該通過(guò)projection來(lái)控制輸出的元素而不是依賴(lài)原來(lái)的順序。
相關(guān)文章:
1. html - 移動(dòng)端radio無(wú)法選中2. javascript - es6模塊加載export的輸出值有點(diǎn)沒(méi)太搞明白3. javascript - 在靜態(tài)頁(yè)面上用load 引入的頁(yè)面文件問(wèn)題?4. mysql - 這條聯(lián)合sql語(yǔ)句哪里錯(cuò)了5. python - 用scrapy-splash爬取網(wǎng)站 為啥iframe下的內(nèi)容沒(méi)有被返回6. css - 移動(dòng)端 line-height安卓錯(cuò)位,蘋(píng)果機(jī)正常用,縮放解決了,可是又出來(lái)了占位的問(wèn)題7. html - IOS二維碼識(shí)別問(wèn)題8. javascript - vue-resource如何終止之前的ajax請(qǐng)求?9. mysql - 數(shù)據(jù)庫(kù)建字段,默認(rèn)值空和empty string有什么區(qū)別 11010. 正則表達(dá)式 - python pandas的sep參數(shù)問(wèn)題
