mongo與關系型數據庫的概念對比,區分大小寫,_id為主鍵。
?
1.數據庫操作
>show dbs? ?#查看所有數據庫
>use dbname? ? #創建和切換數據庫(如果dbname存在則切換到該數據庫,不存在則創建并切換到該數據庫;新創建的數據庫不會顯示,需要插入記錄才會顯示)
>db.dropDatabase()? #刪除數據庫(需要先use進入到需要刪除的數據庫)
?
2.集合操作
>show collections或者show tables? #查看集合(需要先use進入數據庫)
>db.createCollection(集合名字,參數)? ?#創建集合
>db.集合名.drop()? ?#刪除集合
?
3.文檔操作
>db.集合名.insert(文檔)? ?#插入文檔,如果集合在該數據庫中不存在會先創建集合
>db.col.insert({title: 'MongoDB教程', description: 'MongoDB是一個Nosql數據庫',by: '菜鳥教程',url: 'https://www.runoob.com/mongodb/mongodb-tutorial.html',tags: ['mongodb', 'database', 'NoSQL'],likes: 100 })>db.col.insert({title: 'MySQL教程', description: 'MySQL是一個sql數據庫',by: '菜鳥教程',url: 'https://www.runoob.com/mysql/mysql-tutorial.html',tags: ['MySQL', 'database', 'SQL'],likes: 200 })
?
?
>db.集合名.find(查詢條件).pretty()? ?#查詢文檔,find是以非結構化的形式顯示所有文檔,加上pretty()以結構化的形式顯示
對應的findOne方法返回第一個滿足條件的文檔
> db.col.find().pretty() {"_id" : ObjectId("5d2e94f240515ad8a4693240"),"title" : "MongoDB教程","description" : "MongoDB是一個Nosql數據庫","by" : "菜鳥教程","url" : "https://www.runoob.com/mongodb/mongodb-tutorial.html","tags" : ["mongodb","database","NoSQL"],"likes" : 100 } {"_id" : ObjectId("5d2e960d40515ad8a4693241"),"title" : "MySQL教程","description" : "MySQL是一個sql數據庫","by" : "菜鳥教程","url" : "https://www.runoob.com/mysql/mysql-tutorial.html","tags" : ["MySQL","database","SQL"],"likes" : 200 }
?
?
>db.集合名.update(查詢條件,更新操作,{upsert: <boolean>,multi: <boolean>,writeConcern: <document>})? ? ?#更新文檔
- upsert?: 可選,如果不存在update的記錄是否插入為新記錄,true為插入,默認是false不插入。
- multi?: 可選,默認是false,只更新找到的第一條記錄,如果設置為true則將按條件查出來的所有記錄全部更新。
- writeConcern?:可選,拋出異常的級別。
> db.col.update({by:'菜鳥教程'},{$set:{likes:500}},{upsert:true,multi:true}) WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
?
>db.集合名.save(文檔)? ? ??#更新文檔?
根據_id進行判斷,如果要save的記錄在原集合中存在,則按照內容對已存在的文檔進行更新,如果不存在則進行插入。
> db.col.save({"_id" : ObjectId("5d2e960d40515ad8a4693241"),title: 'Python教程',description: 'Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言',by: '菜鳥教程',url: 'https://www.runoob.com/python3/python3-tutorial.html',tags: ['Python', '開發', '編程'],likes: 1000})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
?
db.col.save({"_id" : ObjectId("5d2e960d40515ad8a4693250"),title: 'HTML',description: '是一種用于創建網頁的標準標記語言',by: '菜鳥教程',url: 'https://www.runoob.com/html/html-tutorial.html',tags: ['HTML', '前端', '編程'],likes: 300 }) WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0 })
?
>db.集合名.remove(查詢條件,justOne,writeConcern?)? ?#刪除文檔?
- query?:(可選)刪除的文檔的條件。
- justOne?: (可選)如果設為 true 或 1,只刪除一個文檔,不設置該參數使用默認值 false,刪除所有匹配條件的文檔。
- writeConcern?:(可選)拋出異常的級別。
>db.col.remove({by:'菜鳥教程'},1) WithResult({"nRemoved":1}) >db.col.remove({by:'菜鳥教程'}) WithResult({"nRemoved":2})
db.col.remove({})刪除所有文檔
?