1. 程式人生 > >MongoDB常用命令及pycharm連結MongoDB

MongoDB常用命令及pycharm連結MongoDB

MongoDB常用命令及pycharm連結MongoDB

1.安裝 --見world文件
2.啟動
1.在windows中啟動
1.切換到 安裝目錄的bin目錄下
1. e: 切換碟符
2. cd E:\Program Files\MongoDB\Server\3.4\bin 切換路徑
2.啟動服務端,並指定資料的儲存路徑
格式: mongod --dbpath=資料儲存路徑
如: mongod --dbpath=E:\Program Files\MongoDB\Server\3.4\data\db
注意有些需要加上引號 mongod --dbpath=“E:\Program Files\MongoDB\Server\3.4\data\db”

   3.啟動客端端  ---  注:不要關閉服務
      1.先啟動cmd =,切換到 安裝目錄的bin目錄下
      2.執行啟動
     格式: mongo.exe   看到 >  即可
    
2.在linux中,見linux安裝文件

3.資料庫操作
1.檢視所有的資料庫
格式: show databases;
簡寫: show dbs;

2.建立或者使用一個數據庫
格式: use 資料庫名;
當對應的資料庫不存在的時候,表示建立該資料庫
如果資料庫已經存在,表示使用該資料庫

  注意:如果建立了一個新的資料庫,而該資料庫中沒有資料,則使用
  show dbs檢視的時候,任然看不到,插入資料庫後,即可檢視到
   插入資料如: db.student.insert({name:"haha"})	 

3.檢視當前使用的資料庫
格式: db 代表的是當前資料庫
或者 db.getName() 可以檢視當前資料庫的名字

4.刪除當前資料庫
db.dropDatabase()

5.幫助命令 help
6.退出
exit

  1. 集合的操作 —相當於關係型資料庫的 表
    1.檢視當前庫中的所有集合
    格式: show collections;
    2.建立一個集合
    方式1: db.createCollection(“集合名”) 集合名需要加上引號
    例:db.createCollection(“集合名”)

    方式2: db.集合名.insert(資料)
    例:db.student2.insert({name:“張三”})

    區別: 方式1是建立一個空的集合,如果集合已經存在,不會覆蓋建立

       方式2:如果對應的集合不存在表示建立一個集合,並插入資料
             如果對應的集合存在,表示直接插入一條資料!
    

    3.刪除一個集合
    格式: db.集合名.drop()

5.文件的操作 — 相當於關係型資料庫表中一行資料 row
1.新增一個數據
格式: db.集合名.insert(資料)
資料: key-value的形式
是bson格式, 與json格式一樣
格式: 1. {key1:value,key2:value, keyN:value}
2. [ {key1:value,key2:value, keyN:value}, {key1:value,key2:value, keyN:value}] jsonArray
3. {key1:巢狀json資料,key2:value, keyN:value}

    例: db.student.insert({name:'習大大',age:66,address:"中南海",sex:"男"})
   WriteResult({ "nInserted" : 1 })表示插入成功
     注意: mongodb插入資料的時候,會預設生成一個 _id相當於關係型資料庫中的主健
    如: "_id" : ObjectId("5b8f45c12e3e35173c33f13c")

2.新增多個數據
格式: db.集合名.insert([資料1,資料2,資料n])
例: db.student.insert([{name:‘習近平’,age:66,address:“北京”,sex:“女”},{name:‘習老總’,age:56,address:“陝西”,sex:“女”},{name:‘習大大’,age:46,address:“中南海”,sex:“男”},{name:‘習主席’,age:76,address:“西安”,sex:“男”},{name:‘習胖胖’,age:86,address:“東京熱”,sex:“男”}])

3.插入資料 save 儲存
格式: db.集合名.save(資料) 使用方法與insert一致
例: db.student.save({name:‘馬賽克’,age:150,address:“東京熱”,sex:“不明”})

   區別: 
      db.student.save({ "_id" :ObjectId("5b8f47d03d9b6b894071334b"),name:'馬爸爸'})
      如果使用的是save,而且設定_id屬性,且_id已經存在時, 此時save表示修改資料
      
  db.student.insert({ "_id" :ObjectId("5b8f47d03d9b6b894071334b"),name:'馬媽媽'})
      如果使用的是insert,而且設定_id屬性,且_id已經存在時, 則insert會報錯,

2.查詢資料—結果是 bson的形式
1.查詢所有的資料
格式: db.集合名.find()

pycharm下連結MongoDB

1、建立、插入

# 匯入mongodb模組     pip install pymongo
import  pymongo

# 建立一個連結mongo伺服器的客戶端
# host 主機名
# port 埠號
mongoClient  = pymongo.MongoClient(host="10.31.160.135",port=27017)

# 庫  --- 集合 --- 文件

#操作一個庫
# 格式: mongoClient.庫名   如果該庫存在表示使用該庫, 如果該庫不存在表示建立該庫
school = mongoClient.school

# 插入資料
# 注意:  在python中插入資料時,要插入字典形式
school.student.insert({'name':'金三胖胖','age':18,'address':'平壤','sex':'不明'})

#關閉連線,釋放資源
mongoClient.close()

2、查詢資料

import pymongo
from bson import ObjectId
# 通過ID查詢

mongoClient = pymongo.MongoClient(host="10.31.160.135",port=27017)


# 查詢
# 庫
school = mongoClient.school
# 集合
student = school.student

# 查詢
res= student.find()

#    查詢一條資料
# res = student.find({'name':'小胖胖'})

# 根據id查詢,注意倒包
# res = student.find({'_id':ObjectId('5b8f8bacd1d5bec17e7073b3')})


# 排序
# 注意: sort的引數 不是字典    而是普通引數形式   引數1表示要排序的欄位名, 引數2表示排序型別,  1 升序, -1降序
# res = student.find().sort("age",-1)


# 分頁
# n= 1
# res  = student.find().skip(3*(n-1)).limit(3)


# print(res)
# print(type(res))

# 遍歷所有的結果,獲得集合中的文件
# 文件在python中是dict
for s in res:
    print(s)
    # print(type(s))
    # print(s.get('name'))

mongoClient.close()

3、修改資料

import pymongo

mongoClient = pymongo.MongoClient(host="10.31.160.135",port=27017)

school = mongoClient.school

student = school.student

# student.update({'name':'習近平'},{"$set":{'address':'中華人民共和國'}})
# upsert
# multi

# student.update({'name':'xxxxxx'},{"$set":{'address':'中華人民共和國'}},{"upsert":"true"})
# student.update({'name':'xxxxxx'},{"$set":{'address':'中華人民共和國'}},upsert=True)

student.update({'name':'習近平'},{"$set":{'address':'中華人民'}},multi=True)

mongoClient.close()

4、刪除資料

import  pymongo

mongoClient = pymongo.MongoClient(host="10.31.160.135",port=27017)

school = mongoClient.school
student = school.student

# multi相當於 命令中的justOne 相反
student.remove({"name":"金三胖胖"}, multi = True)

mongoClient.close()