mongodb的學習筆記一(集合和文檔的增刪改查)

1數據庫的增刪改查sql

1、增長一個數據庫:mongodb

use blog-----切換到指定的數據庫,若是數據庫不存在,則自動建立該數據庫(新建的數據庫,若是沒有存儲對應的集合,是不會顯示出來的)

 2、刪除一個數據庫數據庫

1首先用use 切換到你須要刪除的數據庫
use  test
2而後執行db.dropDatabase()命令
db.dropDatabase()

3、修改一個數據庫的名字json

db.copyDatabase(fromdb, todb, fromhost)
fromdb:源數據庫,
todb:目標數據庫
fromhost:原地址

實例:修改blog的數據庫名爲blog123
use blog
db.copyDatabase("blog","blog3");
db.dropDatabase()

4、查詢全部數據庫數組

show dbs

 2文檔的增刪改查(集合---表,文檔--行,字段--列)ui

1、增長文檔spa

db.table_name.insert(document):插入文檔
db.table_name.save(document):插入文檔,若是帶有id,則更新
注意,document都是json格式
實例:插入一個user實例
db.user.insert({"name":"zhangsan","password":"123456"})
或
db.user.save({"name":"zhangsan","password":"123456"})

2、刪除文檔3d

db.table_name.remove(query,juseone)
注意:query與justone都是JSON格式
query:刪除的查詢條件
justone:是否只刪除一條文檔
示例:只刪除一個name等於test的文檔
db.user.remove({"name":"test"},{justone:1})

3、更新文檔code

update語句:對象

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

參數說明:

    query : update的查詢條件,相似sql update查詢內where後面的。
    update : update的對象和一些更新的操做符(如$,$inc...)等,也能夠理解爲sql update查詢內set後面的
    upsert : 可選,這個參數的意思是,若是不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入。
    multi : 可選,mongodb 默認是false,只更新找到的第一條記錄,若是這個參數爲true,就把按條件查出來多條記錄所有更新。
    writeConcern :可選,拋出異常的級別。

示例:更新name爲zhangsan的密碼爲111111,若是不存在就插入,若是存在多條,則只更新一條
use blog
db.user.update({"name":"zhangsan"},{$set:{"password":"111111"},true,false})

update語句的更新操做符說明:

1$set:至關於等號「=」,也能夠爲文檔新增長一個字段,例如name不存在,則添加一個name字段
例如:{$set:{「name「:「"123"}}

2$inc:至關於「加等」「+=」,字段必須存在,
 例如:{$inc:{"ago":1}}

3$unset:去除文檔的某個字段
例如:{$unset:{"ago":0}}
4$push:爲文檔的某個字段添加一個數組值,若是字段不存在,則建立字段
原記錄:
{ "_id" : ObjectId("5003be465af21ff428dafbe7"), "name" : "zhangsan", "password":"123456","group" : [ "manager" ]}
執行命令
db.user.update({"name" : "zhangsan"},{$push:{"group":"sale"}})
執行後
{ "_id" : ObjectId("5003be465af21ff428dafbe7"), "name" : "zhangsan", "password":"123456","group" : [ "manager" ,"sale"]}
5$ne
主要給數組類型鍵值添加一個元素時,避免在數組中產生重複數據,$ne在有些狀況是不通行的。
 db.user.update({"group" : {$ne:"sale"}},{$push:{"group":"sale"}})
6.數組修改器--$pop、$pull
$pop從數組的頭或者尾刪除數組中的元素
--從數組的尾部刪除 1
> db.c.update({"name" : "zhangsan"},{$pop:{"group":1}})
$pull從數組中刪除知足條件的元素,示例以下:
> db.user.update({"name" : "zhangsan"},{$pull:{"group":"sale"}})

7.數組的定位修改器
-------------------------------------------------------------------
在須要對數組中的值進行操做的時候,可經過位置或者定位操做符("$").數組是0開始的,能夠直接將下標做爲鍵來選擇元素。
示例以下:
{"uid":"001",comments:[{"name":"t1","size":10},{"name":"t2","size":12}]}

> db.c.find({"uid":"001"})
{ "_id" : ObjectId("5003da405af21ff428dafbe8"), "uid" : "001", "comments" : [ {
"name" : "t1", "size" : 10 }, { "name" : "t2", "size" : 12 } ] }
> db.c.update({"uid":"001"},{$inc:{"comments.0.size":1}})
> db.c.find({"uid":"001"})
{ "_id" : ObjectId("5003da405af21ff428dafbe8"), "uid" : "001", "comments" : [ {
"name" : "t1", "size" : 11 }, { "name" : "t2", "size" : 12 } ] }

save()語句:

save() 方法經過傳入的文檔來替換已有文檔。語法格式以下:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)
document:JSON格式

示例:更新name爲zhangsan的密碼爲123456
use blog
db.user.save({ "_id" : ObjectId("574d9667ec9f7148b53f27d9"), "name":"zhangsan","password" : "123456" })

4、查詢文檔

db.table_name.find(query)
query:json格式,可使用操做符
示例:查詢ago大於20而且(name等於張三或password等於123456)的記錄
db.col.find({"ago": {$gt:20}, $or: [{"name": "zhangsan"},{"password": "123456"}]}).pretty()
db.col.find().pretty():以合理的格式顯示查詢的內容
相關文章
相關標籤/搜索