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