日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【学习笔记】mongoDB初步(一)MongoDB的安装和增删改查基本语法,使用和命令

發(fā)布時(shí)間:2024/9/30 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习笔记】mongoDB初步(一)MongoDB的安装和增删改查基本语法,使用和命令 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

MongoDB適合儲(chǔ)存大量關(guān)聯(lián)性不強(qiáng)的數(shù)據(jù)。
MongoDB中的數(shù)據(jù)以“庫(kù)”—“集合”—“文檔”—“字段”結(jié)構(gòu)進(jìn)行儲(chǔ)
存。這種結(jié)構(gòu)咋看和傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的“庫(kù)”—“表”—“行”—“列”結(jié)構(gòu)非常像。但是,MongoDB不需要預(yù)先定義表結(jié)構(gòu),數(shù)據(jù)的字段可以任意變動(dòng),并發(fā)寫入速度也遠(yuǎn)遠(yuǎn)超過傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)。

1.安裝

官網(wǎng)下載4.0
bin目錄下:

cfg為配置文件

在c盤下新建data文件夾,其中再新建db:
輸入mongod.exe


圖形化界面的軟件:robo 3T
Robo 3T的下載地址為:https://robomongo.org/download



create database創(chuàng)建數(shù)據(jù)庫(kù)

插入單條數(shù)據(jù)的命令為“insertOne()”。
db.getCollection(‘learning’).insertOne({“name”: “張小二”, “age”: 17, “address”: “浙江”})

MongoDB還允許Key不帶引號(hào),直接寫成{name: ’王小六’,
age: 25, work: ’廚師’}。但這種寫法存在一些局限性,并且會(huì)導(dǎo)
致MongoDB的命令不方便平滑移植到Python中。因此,建議使用帶單引號(hào)的寫法或者帶雙引號(hào)的寫法
在MongoDB里,插入數(shù)據(jù)的字段是可以任意修改、添加、刪除的
如再插入:
db.getCollection(‘learning’).insertOne({“today”: “6.8”,“tomo”:“9”})

db.getCollection(‘learning’).insertOne({“today”: “六月八日”,“tomo”:“9”,“week”:“tuesday”})


提示:
“能不能做”是一回事,“應(yīng)不應(yīng)該做”是另一回事。雖然
MongoDB能夠處理同一個(gè)字段的不同數(shù)據(jù)類型,也可以隨意增減字段,但并不意味著應(yīng)該這樣做。在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),應(yīng)盡量保證同一個(gè)字段使用同一種類型的數(shù)據(jù),并提前考慮好應(yīng)該有哪些字段。

增刪改查

批量插入:

db.getCollection(‘learning’).insertMany([{“name”: “小明”,“age”:“9”},
{“name”: “小紅”,“age”:“19”},
{“name”: “小王”,“age”:“22”}])

切換顯示模式:


注:
無論是插入一條數(shù)據(jù)還是插入多條數(shù)據(jù),每一條數(shù)據(jù)被插入
MongoDB 后都會(huì)被自動(dòng)添加一個(gè)字段“_id”。“_id”讀作“Object Id”,它是由時(shí)間、機(jī)器碼、進(jìn)程pid和自增計(jì)數(shù)器構(gòu)成的。
“_id”始終遞增,但絕不重復(fù)。
● 同一時(shí)間,不同機(jī)器上面的“_id”不同。
● 同一機(jī)器,不同時(shí)間的“_id”也不同。
● 同一機(jī)器同一時(shí)間批量插入的數(shù)據(jù),“_id”依然不同。

查詢數(shù)據(jù)

db.getCollection(‘learning’).find()

db.getCollection(‘learning’).find({})
查詢特定數(shù)據(jù):

db.getCollection(‘learning’).find({‘name’:‘小紅’})

“find”的參數(shù)相當(dāng)于一個(gè)字典。字典的 Key 就是字段名,字典的值就是要查詢的值。如果字典有多個(gè)Key,則這些字段需同時(shí)滿足。

1)查詢所有“age”字段不小于25的記錄,
則需要使用大于等于操作符“$gte”。查詢語句如下:
db.getCollection(‘example_data_1’).find({‘a(chǎn)ge’: {’$gte’: 25}})

范圍操作符及其意義
其中,用于限定字段的字典的Key為各個(gè)字段名。其值只有兩個(gè)——0或1。
● 如果值為0,則表示在全部字段中剔除值為0的這些字段并返回。
● 如果值為1,則表示只返回值為1的這些字段。
例如,查詢數(shù)據(jù)集example_data_1,但不返回“address”和“age”字段。查詢語句如下:
db.getCollection(‘example_data_1’).find({}, {‘a(chǎn)ddress’: 0, ‘a(chǎn)ge’: 0})
2)返回查詢的條數(shù)(一共多少條符合要求的)
count():
db.getCollection(‘learning’).find({‘a(chǎn)ge’: {’$gt’: 21}}).count()

3)limit(4)限制只返回4條數(shù)據(jù)。
具體命令如下:
db.getCollection(‘example_data_1’).find().limit(4)

4)對(duì)查詢結(jié)果進(jìn)行排序——“sort()”命令。
字段的值為-1表示倒序,為1表示正序。
sort({‘字段名’:-1或1})
對(duì)所有“age”大于21的數(shù)據(jù),按“age”進(jìn)行倒序排列。查詢語
句如下:
.find({‘a(chǎn)ge’: {’$gt’:21}}).sort({‘a(chǎn)ge’: -1})

修改 去重?cái)?shù)據(jù)

修改操作也就是更新(Update)操作,對(duì)應(yīng)的 MongoDB 命令
為“updateOne()”和“updateMany()”。
去重操作用到的命令為“distinct()”。格式如下:
db.getCollection(‘example_data_1’).distinct(’字段名’, 查詢語句的第一個(gè)字典)

對(duì)“age”大于等于24的記錄的“age”字段去重
.distinct(‘a(chǎn)ge’,{‘a(chǎn)ge’:{’$gte’:24}})

mongodb介紹

MongoDB 可以用來保存大量數(shù)據(jù),且字段和格式均可以隨意改變
SQL與MongoDB術(shù)語對(duì)比:

MongoDB[1] 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。由C 語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。

總結(jié)

以上是生活随笔為你收集整理的【学习笔记】mongoDB初步(一)MongoDB的安装和增删改查基本语法,使用和命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。