python操作mongodb數據庫
阿新 • • 發佈:2018-03-03
如果 麻煩 實例 remove span res update pytho mongodb
MongoDB簡介
MongoDB是一種文檔型的非關系型數據庫(NoSQL),舉例如下:
{“foo”:3,"greeting":"Hello,world!"}
並且區分大小寫,key值唯一,不可重復,文檔可以嵌套,鍵值對是有序的
集合
1、集合就是一組文檔
2、文檔類似於關系庫裏的行
3、集合類似於關系庫裏的表
4、集合裏的文檔無需固定的結構(與關系型數據庫的區別)
集合的命名
1、不能是空字符串
2、不能包含\0字符(空字符)
3、不能使用system.的前綴
4、建議不包含保留字“$”
5、用.分割不同命名空間的子集合(如:blog.users)
數據庫
1、多個文檔組成集合,多個集合組成數據庫
2、一個實例可以承載多個數據庫
3、每個數據庫都有獨立的權限
4、保留的數據庫名稱(admin,local,config)
命令行操作MongoDB
參考菜鳥教程
在\MongoDB\Server\3.4\bin進入命令行窗口,然後敲mongo即進入MongoDB服務,顯示所有數據庫
> show dbs;
使用某一數據庫(如果不存在的話則會自動新建)
> use 數據庫名稱;
插入數據
寫數據
> stu = { name:‘Jhon‘, age:21, "sex":"male" }
插入數據
> db.數據庫名稱.insert(stu)
查詢數據
> db.數據庫名稱.find()
更新數據
> stu_obj = db.students.findOne() { "_id" : ObjectId("5a9a01c5b1489e70f3a89a0c"), "name" : "Jhon", "age" : 21, "sex" : "male" } > stu_obj.name = "Jackchen" Jackchen > db.students.update({name:"Jhon"},stu_obj) WriteResult({ "nMatched" :1, "nUpserted" : 0, "nModified" : 1 }) > db.students.findOne() { "_id" : ObjectId("5a9a01c5b1489e70f3a89a0c"), "name" : "Jackchen", "age" : 21, "sex" : "male" }
更新數據時,update裏第二個參數會完全代替前一個參數,所以如果第二個參數只有{name:"**"},會把原來的數據刪除
如果要更新多個數據,則可以使用updateMany
總結:這種方式更新數據相當麻煩,可以用修改器
刪除數據
原來是三條數據:
> db.students.find() { "_id" : ObjectId("5a9a01c5b1489e70f3a89a0c"), "name" : "Jhon", "age" : 21, "sex" : "male" } { "_id" : ObjectId("5a9a04d9b1489e70f3a89a0d"), "name" : "oldhu" } { "_id" : ObjectId("5a9a09a3b1489e70f3a89a0e"), "name" : "Amy", "age" : 16, "sex" : "male" }
刪除其中一條:
> db.students.remove({name:"oldhu"}) WriteResult({ "nRemoved" : 1 }) > db.students.find() { "_id" : ObjectId("5a9a01c5b1489e70f3a89a0c"), "name" : "Jackchen", "age" : 21, "sex" : "male" } { "_id" : ObjectId("5a9a09a3b1489e70f3a89a0e"), "name" : "Amy", "age" : 16, "sex" : "male" }
刪除全部:
> db.students.remove({}) WriteResult({ "nRemoved" : 2 }) > db.students.find() >
python操作mongodb數據庫