標籤:upd 輸入 存在 databases 第一個 技術 表示 man 比較操作符
mongodb的基本操作
在cmd中輸入mongo進入資料庫。輸入show databases 可以查詢已有的資料庫,admin 和 local 都是內建的資料庫,不
要去操作這兩個資料庫。下面介紹MongoDB的基本操作:增刪查改!
在對資料處理之前,我們先要建庫建集合:
建庫:使用命令:use + 庫名 如:use dan ;如果庫名存在則進入該庫,不存在就建立!如果沒有添加資料,會發生復原
現象,使用show dbs 查看資料庫,會顯示沒有這個庫!
增加資料:db.test.insert({‘name‘:‘nike‘,‘sex‘:‘man‘}) 預設添加 id 。注意到這裡的資料傳入是以字典的格式!test為集
合名,使用show tables 可以查看當前庫的所有集合。
db.test.save({‘name‘:‘dc&cn‘,‘sex‘:‘*‘}) save方法同樣可以插入資料,如果指定已有的id還可以修改資料。
為了方便下面的闡述,我們多添加幾條資料!
查詢資料:db.test.find() 查詢test集合中的資料,預設顯示20條。
db.test.find({‘age‘:{$eq:‘25‘}}) 查詢test集合中age等於‘25‘的資料。如果插入資料的時候是數字是以字元
串傳入的,則這裡必須使用引號,不然匹配不到!
這裡的最後一條資料,25是以數值直接插入,查詢的時候就查不到,所以資料的格式一定要注意!
db.test.find({‘age‘:{$eq:‘25‘},‘sex‘:‘man‘}) 查詢test集合中age等於‘25‘ 和性別為男的資料。這裡也展示了
多條件過濾。
刪除資料:db.test.drop({‘age‘:‘25‘})
db.test.remove({‘age‘:‘25‘}) 刪除test集合中age欄位值為 ‘25‘ 的
db.test.remove({‘name‘:‘nike‘,‘age‘:‘15‘}) 多條件匹配刪除,注意remove匹配到幾條資料就會刪除幾條。
db.test.remove({}) 刪除當前文檔,但是集合還在,是一個空集合
db.test.drop() 刪除集合
更新資料:db.test.update({‘name‘:‘dc&cn‘},{$set:{‘age‘:23}})
此處找到name為dc&cn的資料將age改為23,沒有該欄位就是添加。每次都是修改匹配到的第一個。multi參數設定為True,會
更新所有的資料。如:db.test.update({‘name‘:‘lining‘},{$set:{‘age‘:2000}},{‘multi‘:3}) 這裡的3預設為true,
符合要求的資料將全部更新。
MongoDB的操作符
比較操作符
$ eq 等於 $ gt 大於 $ gte 不小於 $ lt 小於
$ lte 不大於 $ ne 不等於 $ in 接一個數組,表示在數組元素中匹配
邏輯操作符
or and not nor
db.test.find({$or:[{‘age‘:25},{‘sex‘:‘man‘}]}) 匹配age為25或者sex為man的資料。$or後邊也是接一個數組。
db.test.find({$and:[{‘age‘:25},{‘sex‘:‘man‘}]}) 匹配兩個條件同時滿足的資料,等價於:
db.test.find({‘age‘:‘25‘,‘sex‘:‘man‘})
db.test.find({‘age‘:{$not:{$eq:‘25‘}}}) 匹配age不等於25的。$not操作符只會影響其他動作符不能獨立檢查欄位
和文檔。這裡使用not看似和比較操作符沒有什麼區別,但是將$eq換成$gt時就有明顯的區別了。如所示:
db.test.find({$nor:[{‘age‘:‘25‘}]}) 如果數組裡面的元素使用比較操作符,會匹配失敗
更新操作符:
$inc 加減
$mul 乘法
$rename 重新命名
$set 更新某一個欄位,其他保留
mongodb的基本操作