1. 程式人生 > >python操作mongodb數據庫

python操作mongodb數據庫

如果 麻煩 實例 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數據庫