HOME | 資料庫 | mongodb(二)

mongodb(二)

2018/02/07/16:03 , Post in 資料庫 , 評論(0) , 引用(0) , 閱讀(2535) , Via 本站原創
接續上一篇,不管是什麼資料庫基本上的功能大概就幾種

新增資料、刪除資料、更新資料、查詢資料等...

這點mongodb跟mysql或是其他關聯式資料庫基本上都是一致的

不管任何操作第一步都需要指定哪個資料庫( use dbname)

===新增===

由於mongodb不必事先定義欄位,所以新增的時候也不用先建立資料庫跟資料表

use dbname,insert data到collection,這個collection就會自動產生了

現在要新增一個資料庫叫mongodb-test,以及存入一筆資料到test-collection

use mongodb-test

db.test-collection.insert({資料})

資料基本上就是用json的格式儲存

===搜尋===

接著我要搜尋某個collections的資料,語法大概如下

db.collection.find({條件},{欄位})

db.collection.find({"name":"tszheng"})  #查詢name=tszheng的資料

db.collection.find({},{"score":{$gt:60}})  #查詢score大於60的資料

db.collection.find({},{"type":0})            #查詢的結果不顯示type這個欄位

db.collection.findOne()                         #查詢最近的一筆資料

db.collection.find().sort({"欄位":1})          #對欄位進行正/反向排序,python的寫法不一樣

db.collection.find().count()                    #查詢出來結果的數量

db.collection.find().limit(100)                 #顯示100筆查詢的結果

另外因為mongodb欄位很自由,不是每筆資料都有所有欄位,所以還可以查詢xxx欄位存在的資料

db.collection.find({"xxx":{$exists:true}})

===刪除===

刪除比較簡單,find的條件搜尋出來的結果要刪除,就把find改成remove就可以了

db.collection.remove({條件})

要全刪的時候也不要忘記要下條件

db.collection.remove({})

===更新===

db.collection.update({'xxx':'條件'},{$set:{'xxx':'新資料'}},{multi:true})

後面的multi:true是指符合此條件的資料全部進行更新,如果沒有這個參數則會更新符合條件最新的一筆資料

===python進行資料庫操作===


from pymongo import MongoClient          #import pymongo
client = MongoClient('localhost',27017)    #連線
db = client.collection                              #選擇資料庫
db.collection.insert({"title":"地一筆資料",...})   #插入資料
rc = db.collection.find()      #搜尋資料
for i in range(0,rc.count(),1):
    print rc[i]['ip']                   印出所有資料的ip欄位


比較特殊的是如果儲存的是時間,那要用python轉成object存入

還有上面有提到sort的寫法在python是不一樣的

db.collection.find().sort("欄位",1)  前後並沒有{},同時欄位以及正/反排序是用 , 而不是 :

另外如果要查詢ObjectId他一樣是一個Object,不能直接用string下去查詢

from bson import ObjectId
oid_str = '5a7931de20be054518904450'
oid = ObjectId(oid_str)




發表評論

暱稱

網址

電郵

開啟HTML 開啟UBB 開啟表情 隱藏 記住我 [登入] [註冊]