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. mysql 查詢(xún)身份證號(hào)字段值有效的數(shù)據(jù)2. 視頻文件不能播放,怎么辦?3. node.js - nodejs開(kāi)發(fā)中常用的連接mysql的庫(kù)4. python bottle跑起來(lái)以后,定時(shí)執(zhí)行的任務(wù)為什么每次都重復(fù)(多)執(zhí)行一次?5. mysql - 把一個(gè)表中的數(shù)據(jù)count更新到另一個(gè)表里?6. 請(qǐng)教使用PDO連接MSSQL數(shù)據(jù)庫(kù)插入是亂碼問(wèn)題?7. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處8. python - 爬蟲(chóng)模擬登錄后,爬取csdn后臺(tái)文章列表遇到的問(wèn)題9. visual-studio - Python OpenCV: 奇怪的自動(dòng)補(bǔ)全問(wèn)題10. Python爬蟲(chóng)如何爬取span和span中間的內(nèi)容并分別存入字典里?
