學習資源網站:https://www.bilibili.com/video/BV1bJ411x7mq?from=search&seid=8073803961154704106
本篇博客主要是在學習完mongodb數據庫後的一些總結和反思,用於日後快速回顧
一、啓動MongoDB服務器
在bin目錄下打開命令提示符,輸入指令
mongod --dbpath=..\data\db
二、常用的操作指令
登錄 mongo
查看已有的數據庫 show databases
退出 exit
創建集合 db.createCollection("集合名")
查看當前庫中表 show collections
集合的刪除 db.集合.drop()
注:當向一個集合中插入一個文檔的時候,如果集合不存在,則會自動創建集合。
三、集合操作指令
1、單個文檔插入
db.comment.insert(
{
"articleid":"100000",
"content":"今天天氣真好,陽光明媚",
"userid":"1001",
"nickname":"Rose",
"createdatetime":newDate(),
"likenum":NumberInt(10),
"state":null
}
)
2、多個文檔插入
db.comment.insertMany([
{ "_id":"1","articleid":"100001","content":"我們不應該把清晨浪費在手機上,健康很重要,一杯溫水幸福你我 他。","userid":"1002","nickname":"相忘於江湖","createdatetime":new Date("2019-08- 05T22:08:15.522Z"),"likenum":NumberInt(1000),"state":"1" },
{ "_id":"2","articleid":"100001","content":"我夏天空腹喝涼開水,冬天喝溫開水","userid":"1005","nickname":"伊人憔 悴","createdatetime":new Date("2019-08-05T23:58:51.485Z"),"likenum":NumberInt(888),"state":"1"},
{ "_id":"3","articleid":"100001","content":"我一直喝涼開水,冬天夏天都喝。","userid":"1004","nickname":"傑克船 長","createdatetime":new Date("2019-08-06T01:05:06.321Z"),"likenum":NumberInt(666),"state":"1"},
{ "_id":"4","articleid":"100001","content":"專家說不能空腹喫飯,影響健康。","userid":"1003","nickname":"凱 撒","createdatetime":new Date("2019-08-06T08:18:35.288Z"),"likenum":NumberInt(2000),"state":"1"},
{ "_id":"5","articleid":"100001","content":"研究表明,剛燒開的水千萬不能喝,因爲燙 嘴。","userid":"1003","nickname":"凱撒","createdatetime":new Date("2019-08- 06T11:01:02.521Z"),"likenum":NumberInt(3000),"state":"1"}
]);
3、文檔的基本查詢
查詢所有 db.comment.find()
按一定條件 db.comment.find({userid:'1003'}) //查詢userid爲1003的所有記錄
db.comment.findOne({userid:'1003'})//查詢userid爲1003的第一條記錄
查詢某些記錄的部分信息 db.comment.find({userid:"1003"},{userid:1,nickname:1})
不顯示_id db.comment.find({userid:"1003"},{userid:1,nickname:1,_id:0})
查詢所有的部分信息 db.comment.find({},{userid:1,nickname:1,_id:0})
4、文檔的更新
覆蓋的修改 db.comment.update({_id:"1"},{likenum:NumberInt(1001)})
局部的修改 db.comment.update({_id:"2"},{$set:{likenum:NumberInt(889)}})
批量修改 db.comment.update({userid:"1003"},{$set:{nickname:"劉明勇"}})//只修改第一條數據
db.comment.update({userid:"1003"},{$set:{nickname:"劉明勇1"}},{multi:true})
列增長的修改 db.comment.update({_id:"3"},{$inc:{likenum:NumberInt(1)}})
5、統計查詢
統計所有記錄數 db.comment.count()
按條件統計 db.comment.count({userid:"1003"})
6、分頁列表查詢
db.comment.find().skip(0).limit(2)
注:
1、存儲的文檔會分頁,例如每頁兩條記錄,需要要查詢第二頁內容需用該語句
2、skip(), limilt(), sort()三個放在一起執行的時候,執行的順序是先 sort(), 然後是 skip(),最後是顯示的 limit(),和命令編寫順序無關。
3、在sort()方法中1爲升序、-1爲降序
7、排序查詢
db.comment.find().sort({userid:-1,likenum:1})
8、模糊查詢
db.comment.find({content:/開水/}) //查詢評論內容中包含'開書'的所有文檔
9、比較查詢
db.comment.find({likenum:{$gt:NumberInt(700)}})
注:
db.集合名稱.find({ “field” : { $gt: value }}) // 大於: field > value
db.集合名稱.find({ “field” : { $lt: value }}) // 小於: field < value
db.集合名稱.find({ “field” : { $gte: value }}) // 大於等於: field >= value
db.集合名稱.find({ “field” : { $lte: value }}) // 小於等於: field <= value
db.集合名稱.find({ “field” : { $ne: value }}) // 不等於: field != value
10、包含查詢
//查詢評論的集合中userid字段包含1003或1004的文檔
db.comment.find({userid:{$in:["1003","1004"]}})
//查詢評論的集合中userid字段不包含1003或1004的文檔
db.comment.find({userid:{$nin:["1003","1004"]}})
11、條件連接查詢
//查詢評論集合中likenum大於等於700 並且小於2000的文檔:
db.comment.find({$and:[{likenum:{$gte:NumberInt(700)}},{likenum:{$lt:NumberInt(2000)}}]})
//查詢評論集合中userid爲1003,或者點贊數小於1000的文檔記錄
db.comment.find({$or:[ {userid:"1003"} ,{likenum:{$lt:1000} }]})