技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

MongoDB常用操作技巧匯總

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2017-10-12 06:39┆點擊:

查看當(dāng)前數(shù)據(jù)庫中所有的集合,使用命令

show collections 或使用 show tables

創(chuàng)建集合有兩種方式,顯示創(chuàng)建和隱式創(chuàng)建

顯示創(chuàng)建可以使用命令 db.createCollection(“集合名稱") 隱式創(chuàng)建可以使用命令 db.集合名稱.insert({}), 指創(chuàng)建集合并同時向集合中插入數(shù)據(jù), 例如:db.customer.insert({name:”jack”})

向集合添加文檔

使用命令 db.集合名稱.insert({}),例如:

db.user1.insert({name:”jack”,age:20})

刪除集合中的文檔

使用命令 db.集合名稱.remove({刪除條件}), 不加刪除條件為刪除集合中的所有文檔: 例如,刪除c1集合中的所有文檔 db.c1.remove() 刪除c1集合中name為user1的文檔 db.c1.remove({name:”user1”})

查詢集合中的文檔

db.集合名稱.find({條件}) 或者使用 db.集合名稱.findOne() 查詢第一個文檔

查詢集合中的文檔,返回某些特定的鍵值
除了查詢表達式以外,MongoDB還支持一些額外的參數(shù)選項。
如果僅僅只想返回某些特定的字段值:
返回除了age字段外的所有字段
db.user.find({},{age:0});

返回tags=tennis除了comments的所有列
db.posts.find({tags:'tennis'},{comments:0});

返回userid=16的name字段
db.user.find({userid:16},{name:1});
{"_id":16,"name":"user16"}

返回x=john的所有z字段
db.things.find({x:"john"},{z:1});

查詢集合中的文檔 ,使用條件表達式(<, <=, >, >=,!=)
//大于: field > value
db.collection.find({field:{$gt:value}});

//小于: field < value
db.collection.find({field:{$lt:value}});

//大于等于: field >= value
db.collection.find({field:{$gte:value}});

//小于等于: field <= value
db.collection.find({field:{$lte:value}});

//不等于:  field != value
db.collection.find({field:{$ne:value}});

查詢集合中的文檔 ,統(tǒng)計(count)、排序(sort)、分頁(skip、limit)

db.customer.count(); db.customer.find().count(); db.customer.find({age:{$lt:5}}).count(); db.customer.find().sort({age:1}); 降序-1 db.customer.find().skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3); db.customer.find().sort({age:-1}).skip(2).limit(3).count(); db.customer.find().sort({age:-1}).skip(2).limit(3).count(0); db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);

查詢集合中的文檔
$all主要用來查詢數(shù)組中的包含關(guān)系,
查詢條件中只要有一個不包含就不返回

$in,類似于關(guān)系型數(shù)據(jù)庫中的IN

$nin,與$in相反

$or,相當(dāng)于關(guān)系型數(shù)據(jù)庫中的OR,表示或者的關(guān)系,
例如查詢name為user2或者age為3的文檔,命令為:
db.customer.find({$or:[{name:”user2”},{age:3}]})

$nor,表示根據(jù)條件過濾掉某些數(shù)據(jù),例如查詢name不是user2,age不是3的文檔,命令為:
db.customer.find({$nor:[{name:”user2”},{age:3}]})

$exists,用于查詢集合中存在某個鍵的文檔或不存在某個鍵的文檔,例如查詢customer集合中存在name鍵的所有文檔,可以使用
db.customer.find({name:{$exists:1}})
$exists:1表示真,指存在
$exists:0表示假,指不存在

游標(biāo)

更新集合中的文檔
語法:db.collection.update(criteria,objNew,upsert,multi)
參數(shù)說明:
criteria:用于設(shè)置查詢條件的對象
objNew:用于設(shè)置更新內(nèi)容的對象
upsert:如果記錄已經(jīng)存在,更新它,否則新增一個記錄,取值為0或1
multi:如果有多個符合條件的記錄,是否全部更新,取值為0或1

注意:默認情況下,只會更新第一個符合條件的記錄
一般情況下后兩個參數(shù)分別為0,1 ,即:
db.collection.update(criteria,objNew,0,1)

將集合中name為user1的文檔改成name為jack:
db.c1.update({name:"user1"},{name:"jack"})

$set 用來指定一個鍵的值,如果這個鍵不存在,則創(chuàng)建它。例如:
給name為user1的文檔添加address,可以使用命令:
db.c1.update({name:”user1”},{$set:{address:”bj”}},0,1)
將name為user1的文檔修改address為tj,其它鍵值對不變,命令為:
db.c1.update({name:”user1”},{$set:{address:”tj”}},0,1)

使用 $inc 將集合中name為user1的age加1,其它鍵不變,
$inc表示使某個鍵值加減指定的數(shù)值
db.c1.update({name:"user1"},{$inc:{age:1}})

$unset 用來刪除某個鍵
例如刪除name為user1的文檔中的address鍵,可以使用命令:
db.c1.update({name:”user1”},{$unset:{address:1}},0,1)

二、索引: