
文章插圖
| 總結(jié)/Edison Zhou
通過前面幾篇的鋪墊,我們基本了解了MongoDB是個什么東西,搭建起了一個MongoDB的小集群環(huán)境 。接下來,我們就來學(xué)習(xí)一下MongoDB的基本操作 。
1 insert操作
我們都知道對于傳統(tǒng)關(guān)系型數(shù)據(jù)庫,通常會使用SQL來進(jìn)行基本操作 。而對于MongoDB來說,通常則會使用MQL來進(jìn)行基本操作 。
首先,我們來看看如何插入新數(shù)據(jù),MongoDB為我們提供了插入單個和多個文檔的接口 。
插入單個文檔:db.<collectionName>.insertOne
db.teams.insertOne({name:"cscec-football-team", members:22});插入多個文檔:db.<collectionName>.insertManydb.teams.insertMany([{name:"yzw-football-team", members:22},{name:"yzw-basktellball-team", members:15},{name:"yzw-outting-team", members:30}]);2 find操作查詢操作(find)初步
在關(guān)系型數(shù)據(jù)庫中,我們最常用的操作就是select,對于MongoDB則是find 。需要注意的是,find返回的是游標(biāo) 。
查詢所有數(shù)據(jù):db.<collectionName>.find
db.teams.find(); -- 未格式化db.teams.find().pretty(); -- 格式化如果你使用的是navicat,可以切換一下展現(xiàn)形式看看 。查詢帶條件的數(shù)據(jù):db.<collectionName>.find(filter)
-- 單個條件db.teams.find({"members":22});-- 多個條件的and(類似于SQL中的and)db.teams.find({"members":22, "name":"yzw-football-team"});-- 上面也等價于db.teams.find({$and:[{"members":22, "name":"yzw-football-team"}]});-- 多個條件的or(類似于SQL中的or)db.teams.find({$or:[{"members":22, "name":"yzw-football-team"}]});-- 按照正則表達(dá)式查找db.teams.find({"name":/^ball/});查詢操作(find)進(jìn)階搜索在MQL中,傳統(tǒng)SQL中的查詢條件如>, <, !=等操作符有了不一樣的表述:
-- 找到人數(shù)>20的teamdb.teams.find({"members":{$gt:20}});-- 找到人數(shù)<20的teamdb.teams.find({"members":{$lt:20}});-- 找到人數(shù)>=20的teamdb.teams.find({"members":{$gte:20}});-- 找到人數(shù)<=20的teamdb.teams.find({"members":{$lte:20}});-- 找到人數(shù)!=20的teamdb.teams.find({"members":{$ne:20}});下面是查詢條件的一個對照表:
文章插圖
如果需要查詢某個字段是NULL?又或者如何實(shí)現(xiàn)SQL中的IN呢?
-- name IS NULLdb.teams.find({"name":{$exists:false}});-- name IS NOT NULLdb.teams.find({"name":{$exists:true}});-- members IN(11,22,30)db.teams.find({"members":{$in:[11,22,30]}});-- members NOT IN(11,22,30)db.teams.find({"members":{$nin:[11,22,30]}});下面是查詢邏輯的一個對照表:
文章插圖
查詢操作(find)子文檔搜索
在MQL中,可以支持我們使用"字段.子字段名"的形式來查詢子文檔:
-- 填充數(shù)據(jù)db.products.insertOne({name:"YZ.JC", description:{country:"China", province:"Chengdu"}});-- 查詢子文檔db.products.find({"description.country":"China"});查詢操作(find)數(shù)組搜索在MQL中,可以支持我們搜索數(shù)組中的元素:
-- 填充數(shù)據(jù)db.products.insertMany([{name:"Walkman", color:["white","gray"]},{name:"CD Player", color:["black","yellow"]}]);-- 查詢color為white的db.products.find({color:"white"});-- 查詢color為white或者black的db.products.find({$or:[{color:"white"},{color:"black"}]});
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:
- mongodb是nosql數(shù)據(jù)庫嗎 3 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫嗎 5 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫嗎 6 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫嗎 7 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫嗎 8 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫嗎 9 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫嗎 11 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫嗎 12 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫嗎 13 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
- mongodb是nosql數(shù)據(jù)庫嗎 14 NoSQL | MongoDB入門實(shí)戰(zhàn)教程
