mongodb 查询 mysql_MongoDB 基本查询使用
剛才前面發了Windows下安裝使用MongoDB數據庫,覺得就這樣多吊人胃口啊,所以就順便把一些基本的查詢方法寫出來,供大家參考學習,如果寫的有不對的地方還請多多批評。
我想看過前面寫的"Windows下MongoDB的安裝使用"的文章的應該知道怎么打開數據庫了!現在我們就從這里接著講!還有一點就是我的版本目前是2.0.4的哦!但是我看過很多方法在各個版本上還是通用的!
補充下哈:在開始之前我要強調一個重點!文檔就是一條數據意思,集合就是表的意思,默認監聽端口是27017,mongodb是使用javascript交互的,不錯你沒有看錯,就是javascript(前面有提到哦),這些在后面慢慢的深入中會發現如果會了javascript學習mongodb是多么上手的一件事!下面開始:
使用之前別忘記先啟動服務
1.show dbs
這個可以顯示當前的實例下所有數據庫的列表!不同的版本有不同的案例數據庫!2.0.4的是local,并且是一個空的數據庫!
2.use myFirst
myFirst是我創建的!如果你不創建的話,那么這句就可以隱式的幫你創建myFirst數據庫,use myFirst也就是使用這個數據庫的意思!現在應該沒有數據庫,那么我們就插入數據進行學習測試。
3.db.test1.save({"name":"qlier", age:21, "sex":"male"});
test1這個表也會隱式的被創建,并且插入一條文檔 ,文檔有name,age,sex。下面我們在用另外一種方法插入一條數據。
4.db.test1.insert({"name":"tom", age:19, "sex":"male"});
在test1中插入數據,可能你會問insert和save有什么不同,他們還真的有點不同!
insert僅僅是插入文檔到集合中,如果記錄不存在則插入,如果記錄存在則忽略
save是在文檔不存在時插入,存在時則是更新
5.db.test1.find();
這個可以查詢test1集合中所有的數據。所有的文檔都有_Id這一列,這個是主鍵,是系統生成唯一的主鍵,不過我們也可以自己來操作,怎么操作就自己動動腦子了,不過自己操作的時候可千萬不能有重復的值,要不會有異常。
6.db.test1.findOne();
這個查詢test1集合中最上面一條數據并顯示。
7.db.test1.find({name:"qlier"});
查詢name是qlier的文檔。
8.db.test1.update({name:"tom"}, {$set:{name:"Jim"}});
修改名稱tom為Jim,這個是修改的方法。
9.db.test1.remove({name:"Jim"});
這個是刪除name為Jim!
這些都是最最基本的增刪改查了,下面將重點講解查詢!表test2是在我電腦上創建過的,就name, age, sex,和test1一樣。
10.條件操作符、>=
db.test2.find({age:{$gt:20}});
查詢年齡大于12歲的用戶,如此的還有$lt小于、$gte大于等于、$lte小于等于。
11.$all匹配所有
db.test2.find({age:{$all:[8]}});
他會匹配所有age等于8的文檔。
12.$exists判斷字段是否存在
db.test2.find({age:{$exists:true}});
查詢所有存在age字段的文檔。false表示不存在。
13.$mod取模運算
db.test2.find({age:{$mod:[10, 1]}});
查詢所有age模10等于1的文檔。
14$ne不等于
db.test2.find({age: {$ne : 20}});
查詢所有年齡不等于20的用戶文檔。
15.$in包含
db.test2.find({age : { $in : [20, 21, 22]}});
查詢所有年齡等于20、21、22的用戶文檔。
16$nin不包含
db.test2.find({age : {$nin : [20, 21, 22]}});
查詢所有年齡不等于20、21、22的用戶文檔。
17.count查詢記錄條數
db.test2.find().count();
返回test2集合中文檔記錄的數目。
18.limit限制顯示的條數
db.test2.find().limit(5);
返回test2中上面的5條記錄。
19.skip限制返回記錄的起點
db.test2.find().skip(3);
返回test2中上面數第三條數據一下的所有數據
20.分頁的實現
db.test2.find().skip(1).limit(5);
返回從第二條數據開始,顯示5條數據,這個可以用作分頁,很簡單就實現了!
21.sort排序
db.test2.find().sort({age:1});
所有的數據按年齡大小升序(asc)排列,既然1表示asc排列,那么-1就表示desc排列,這是真的。
22.distinct去掉重復值
db.test2.find().distinct("name");
按name的重復值篩選數據。
今天就寫到這里,這些都是很常用的基本的查詢操作,至于是否有更復雜的查詢呢,肯定是有了,包括group查詢、聯合查詢、正則表達式查詢、null值的處理等!只不過這些在后面都會有提到的。
同學們看到這里應該可以在我們非常喜歡的Node.js中試一試了,體驗Mongodb帶給我們的更多驚喜。
后面還會繼續講怎么自動啟動服務、日志記錄、存儲過程等等。供大家一起參考學習,如果寫的不對的地方還請多多指出批評哦。
來源:CIT.CN
總結
以上是生活随笔為你收集整理的mongodb 查询 mysql_MongoDB 基本查询使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java util concurrent
- 下一篇: Mysql练习_mysql练习题