摘要:示例給追加別名,用法作用加一個值到數組內,而且只有當這個值在數組中不存在時才增加。示例刪除記錄內的所有別名可以看到和已經全部被刪除了用法作用對字段進行重命名示例把記錄的字段重命名為由結果可以看出字段已經被更新為了。
1. 來源
存儲方式就是個大json,很靈活。
2. 官網下載安裝https://docs.mongodb.com
3. 啟動// 指定數據庫所在的文件夾 mongod --dbpath d:mongo
保持此狀態,新起一個cmd,進行其他操作,如:
mongo
之后就是mongo的環境,可以敲相關的增刪改查。
另外mongo的存儲方式是物理可見的,我們可以直接導入一個數據庫,使用:
mongoimport4. 數據庫相關命令
show dbs:列出所有數據庫 use xxx: 使用xxx數據庫 db: 查看當前所在的數據庫 db.collections.insert({}):往collections中插入對象,如果collections第一次出現則創建collections. show collections: 顯示當前庫中所有的collections db.dropDatabase():刪除當前數據庫5. 增
db.collections.insert({}); // 3.2新api db.collections.insertOne({}); db.collections.insertMany([]);
導入(報語法錯誤,不知為什么)
mongoimport --db test --collection restaurants --drop --file C:UsersAdministratorDesktopaaa.json6. 查
// 查詢所有 db.collections.find(); // 精確匹配 db.collections.find({name:"michael"}); // 多個條件(與條件) db.collections.find({name:"michael",age:29}); // 大于 db.collections.find({age:{$gt:29}}); // 或條件 db.collections.find({$or:[{name:"kobe",age:29}]}); // sort:1為升序;-1為降序 db.collections.find().sort({age:1}); // limit db.collections.find().limit(5);7. 改
// 更改某個字段 db.collections.update({name:"kobe"},{$set:{age:19}}); // 完全替換,不使用set db.collections.update({name:"kobe",{name:"kobe",age:20}}); // 全部替換,以上默認只會替換一個 db.collections.update({age:29},{$set:{age:30}},{multi:true});8. 刪
// 刪除全部數據 db.collections.remove(); // 刪除部分數據 db.collections.remove({name:"kobe"});9. 查詢操作符
大于 - $gt(greater than) 小于 - $lt(less than) 大于等于 - $gte(gt equal) 小于等于 - $lte(lt equal) 不等于 $ne (not equal)10. 更新操作符
1.$inc
用法:{$inc:{field:value}}
作用:對一個數字字段的某個field增加value
示例:將name為chenzhou的學生的age增加5
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 22 } #查詢結果顯示年齡為22 > db.students.update({name:"chenzhou"},{$inc:{age:5}}) #執行修改,把age增加5 > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 27 } > #查詢結果顯示年齡為27,修改成功
2.$set
用法:{$set:{field:value}}
作用:把文檔中某個字段field的值設為value
示例: 把chenzhou的年齡設為23歲
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 27 } > db.students.update({name:"chenzhou"},{$set:{age:23}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 23 } > 從結果可以看到,更新后年齡從27變成了23
3.$unset
用法:{$unset:{field:1}}
作用:刪除某個字段field
示例: 將chenzhou的年齡字段刪除
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou", "age" : 23 } > db.students.update({name:"chenzhou"},{$unset:{age:1}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou" } >
4.$push
用法:{$push:{field:value}}
作用:把value追加到field里。注:field只能是數組類型,如果field不存在,會自動插入一個數組類型
示例:給chenzhou添加別名"michael"
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "name" : "chenzhou" } > db.students.update({name:"chenzhou"},{$push:{"ailas":"Michael"}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael" ], "name" : "chenzhou" } > 由結果可以看到,記錄中追加了一個數組類型字段alias,且字段有一個為"Michael"的值
5.pushAll
用法:{$pushAll:{field:value_array}}
作用:用法同$push一樣,只是$pushAll可以一次追加多個值到一個數組字段內。
示例:給chenzhou追加別名A1,A2
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael" ], "name" : "chenzhou" } > db.students.update({name:"chenzhou"},{$pushAll:{"ailas":["A1","A2"]}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael", "A1", "A2" ], "name" : "chenzhou" } >
6.$addToSet
用法:{$addToSet:{field:value}}
作用:加一個值到數組內,而且只有當這個值在數組中不存在時才增加。
示例:往chenzhou的別名字段里添加兩個別名A3、A4
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael", "A1", "A2" ], "name" : "chenzhou" } > db.students.update({name:"chenzhou"},{$addToSet:{"ailas":["A3","A4"]}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael", "A1", "A2", [ "A3", "A4" ] ], "name" : "chenzhou" } > 由結果可以看出,更新后ailas字段里多了一個對象,這個對象里包含2個數據,分別是A3、A4
7.$pop
用法:刪除數組內第一個值:{$pop:{field:-1}}、刪除數組內最后一個值:{$pop:{field:1}}
作用:用于刪除數組內的一個值
示例: 刪除chenzhou記錄中alias字段中第一個別名
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "Michael", "A1", "A2", [ "A3", "A4" ] ], "name" : "chenzhou" } > db.students.update({name:"chenzhou"},{$pop:{"ailas":-1}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2", [ "A3", "A4" ] ], "name" : "chenzhou" } > 由結果可以看書,第一個別名Michael已經被刪除了。
我們再使用命令刪除最后一個別名:
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2", [ "A3", "A4" ] ], "name" : "chenzhou" } > db.students.update({name:"chenzhou"},{$pop:{"ailas":1}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2" ], "name" : "chenzhou" } > 由結果可以看出,alias字段中最后一個別名["A3","A4"]被刪除了。
8.$pull
用法:{$pull:{field:_value}}
作用:從數組field內刪除一個等于_value的值
示例:刪除chenzhou記錄中的別名A1
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2" ], "name" : "chenzhou" } > db.students.update({name:"chenzhou"},{$pull:{"ailas":"A1"}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A2" ], "name" : "chenzhou" } >
9.$pullAll
用法:{$pullAll:value_array}
作用:用法同$pull一樣,可以一次性刪除數組內的多個值。
示例: 刪除chenzhou記錄內的所有別名
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ "A1", "A2" ], "name" : "chenzhou" } > db.students.update({name:"chenzhou"},{$pullAll:{"ailas":["A1","A2"]}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ ], "name" : "chenzhou" } > 可以看到A1和A2已經全部被刪除了
10.$rename
用法:{$rename:{old_field_name:new_field_name}}
作用:對字段進行重命名
示例:把chenzhou記錄的name字段重命名為sname
> db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ ], "name" : "chenzhou" } > db.students.update({name:"chenzhou"},{$rename:{"name":"sname"}}) > db.students.find() { "_id" : ObjectId("5030f7ac721e16c4ab180cdb"), "ailas" : [ ], "sname" : "chenzhou" } > 由結果可以看出name字段已經被更新為sname了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/19023.html
摘要:文檔數據庫在中,一條紀錄就是一個文檔,它是由字段和值對組成的數據結構。尤其是在數據庫系統中,對于嵌入式數據模型的支持減少了活動。它提供自動故障轉移數據冗余副本集是一組服務器,保持相同的數據集,提供冗余和提高數據可用性的。 MongoDB 是一個提供了高性能、高可用、自動擴展的開源的文檔數據庫。 文檔數據庫 在MongoDB中,一條紀錄就是一個文檔,它是由字段和值對組成的數據結構。Mon...
摘要:不采用關系模型主要是為了獲得更好的擴展性。易于擴展應用程序數據集的大小正在以不可思議的速度增長。過去非常罕見的級別數據,現在已是司空見慣了。這種精簡方式的設計是能夠實現如此高性能的原因之一。下一篇文章指南基礎知識文檔集合數據庫客戶端 下一篇文章:MongoDB指南---2、MongoDB基礎知識-文檔、集合、數據庫、客戶端 MongoDB是一款強大、靈活,且易于擴展的通用型數據庫。它...
摘要:不采用關系模型主要是為了獲得更好的擴展性。易于擴展應用程序數據集的大小正在以不可思議的速度增長。過去非常罕見的級別數據,現在已是司空見慣了。這種精簡方式的設計是能夠實現如此高性能的原因之一。下一篇文章指南基礎知識文檔集合數據庫客戶端 下一篇文章:MongoDB指南---2、MongoDB基礎知識-文檔、集合、數據庫、客戶端 MongoDB是一款強大、靈活,且易于擴展的通用型數據庫。它...
摘要:把命令所在文件夾添加到全局變量,如果一般只用同一個賬戶,所以添加到當前用戶的全局變量即可。在中添加命令修改后,重新加載配置文件同樣到官網下載最新文件,按照步驟安裝完成后,把安裝目錄中的目錄添加到環境變量中,即可在命令提示符中使用相關命令。 Linux 到 mongoDB 官網找到最新壓縮包鏈接,利用 Linux 下載工具獲取安裝包: wget https://fastdl.mongod...
摘要:學習已經有三周了,是時候來一發學習總結啦。相關簡介是非關系型的數據庫。簡單在于,所有的都由大括號,中括號,以及對構成。不同于,它是同步的。 學習mongoDB已經有三周了,是時候來一發學習總結啦。以下是個人學習心得總結,非官方,可能有紕漏和不準確之處,歡迎指正。 相關簡介 1.mongoDB是非關系型(nosql)的數據庫。 2.mongoDB是無模式(schemaless)的數...
閱讀 3838·2021-11-25 09:43
閱讀 2180·2021-11-23 10:11
閱讀 1410·2021-09-29 09:35
閱讀 1357·2021-09-24 10:31
閱讀 2043·2019-08-30 15:48
閱讀 2361·2019-08-29 15:28
閱讀 436·2019-08-29 12:36
閱讀 3497·2019-08-28 18:12