// 更新文檔
db.getCollection("less").update({"start":"update"},{$set:{"start":"new"}})
// 查找文檔
db.getCollection("userProfile").find({"status":1}).limit(1).pretty()
db.getCollection("less").find().limit(10).pretty()
// 創(chuàng)建刪除集合
// 執(zhí)行insert的時候呜舒,如果集合不存在麸塞,則會自動創(chuàng)建這個集合
// 刪除集合 remove
db.newTable.insert({"start":"start"})
db.getCollection("less").insert({"start":"start2"})
db.getCollection("less").remove({"start":"start1"})
// 排序 1 -1(倒序)
db.getCollection("less").find().limit(10).sort({
"_id": - 1
}).pretty()
// or 與 and 的查詢條件 并過濾展示字段
db.getCollection("userProfile").find(
{
"countryCode": "CN",
$or:[
{
"nickName": "Hana"
},
{
"nickName": "JackIos"
}
]
},
{
_id:0
}
).limit(10)
// 結(jié)果處理
// 連表查詢 過濾 分組
db.getCollection("userProfile").aggregate(
[
{
$lookup: { // 連表
from: "userVedio",
localField: "_id",
foreignField: "userId",
as: "userVideo"
}
},
{
$match:{ // 過濾條件
"_id":3103255
}
},
{
$unwind:{ // 拆分?jǐn)?shù)組
path:"$userVideo"
}
},
{
$group:{ // 分組
_id:"$_id",
callVideo:{
$min:"$userVideo.url"
}
}
},
{
$limit: 10
}
]
)
// 公式/數(shù)據(jù)運(yùn)算
// (>) 大于 - $gt
// (<) 小于 - $lt
// (>=) 大于等于 - $gte
// (<= ) 小于等于 - $lte
// 聚合 等價于 mysql 的 group by city
db.getCollection("userProfile").aggregate([
{
$match: {
"status": 1,
"_id": 100000
}
},
{
$group: {
_id: "$_id",
age: {
$min: "$age"
},
countryCode: {
$min: "$countryCode"
},
status: {
$min: "$status"
}
}
},
{
$project: {
_id: 1,
age: 1,
countryCode: 1,
status: 1
}
},
{
$sort: {
"_id": - 1
}
},
{
$limit: 10
}
])
// 數(shù)據(jù)庫監(jiān)控 狀態(tài)查詢
db.serverStatus()
// 鎖信息監(jiān)控
db.serverStatus().globalLock
{
"totalTime" : NumberLong("2651301900000"), //自上次發(fā)生lock以來的時間
"currentQueue" : { //鎖等待隊(duì)列信息
"total" : 0, //因?yàn)殒i而產(chǎn)生的排隊(duì)的總數(shù)
"readers" : 0, //等待讀鎖而產(chǎn)生的排隊(duì)數(shù)(kQueuedReader)
"writers" : 0 //等待寫鎖而產(chǎn)生的排隊(duì)數(shù)(kQueuedWriter)
},
"activeClients" : { //活躍連接數(shù)信息
"total" : 38, //當(dāng)前活躍連接數(shù)
"readers" : 0, //當(dāng)前執(zhí)行讀操作的活躍連接數(shù)(kActiveReader)
"writers" : 0 //當(dāng)前執(zhí)行寫操作的活躍連接數(shù)(kActiveWriter)
}
}
// 連接信息監(jiān)控
db.serverStatus().connections
{
"current": 5, //當(dāng)前連接數(shù)
"available": 814, //剩余可以連接數(shù)
"totalCreated": NumberLong(186) //截止到現(xiàn)在創(chuàng)建連接數(shù)
}
// 內(nèi)存信息監(jiān)控
db.serverStatus().mem
{
"bits" : 64, //64位
"resident" : 245, //物理內(nèi)存消耗
"virtual" : 1262, //虛擬內(nèi)存消耗
"supported" : true, //支持顯示額外內(nèi)存信息
"mapped" : 0, //映射內(nèi)存
"mappedWithJournal" : 0 //除了映射內(nèi)存外還包括journal日志消耗的映射內(nèi)存
}
// 錯誤信息監(jiān)控
db.serverStatus().asserts
{
"regular": 0, //服務(wù)啟動后asserts錯誤個數(shù)
"warning": 0, //服務(wù)啟動后warning個數(shù)
"msg": 0, //服務(wù)啟動后message asserts個數(shù)
"user": 22, //服務(wù)啟動后user asserts格式
"rollovers": 0 //服務(wù)啟動后重置次數(shù)
}
// 網(wǎng)絡(luò)流量監(jiān)控
db.serverStatus().network
{
"bytesIn" : NumberLong(1013083142), //網(wǎng)絡(luò)入流量
"bytesOut" : NumberLong(1123552013), //網(wǎng)絡(luò)處流量
"numRequests" : NumberLong(3592562) //累積請求數(shù)
}
// 數(shù)據(jù)庫狀態(tài)
db.stats()
{
"db" : "test", //數(shù)據(jù)庫名
"collections" : 5, //數(shù)據(jù)庫中集合數(shù)
"objects" : 139, //數(shù)據(jù)庫預(yù)估數(shù)據(jù)行
"avgObjSize" : 63.65467625899281, //平均每行數(shù)據(jù)大小,單位為bytes
"dataSize" : 8848, //當(dāng)前數(shù)據(jù)庫數(shù)據(jù)大小假夺,單位為bytes
"storageSize" : 1077248, //當(dāng)前數(shù)據(jù)庫物理存儲大小淮蜈,單位為bytes
"numExtents" : 5,
"indexes" : 2,
"indexSize" : 16352, //索引空間大小,單位為bytes
"fileSize" : 67108864, //數(shù)據(jù)庫預(yù)分配文件大小
"nsSizeMB" : 16,
"extentFreeList" : {
"num" : 1,
"totalSize" : 32768
},
"dataFileVersion" : {
"major" : 4,
"minor" : 22
},
"ok" : 1
}
// 查看當(dāng)前活躍會話
db.currentOp()
{
"inprog" : [
{
"desc" : "conn10",
"threadId" : "0x3fdf860",
"connectionId" : 10,
"opid" : 380692, //db.killOp使用的就是該opid
"active" : true, //是否活躍
"secs_running" : 4, //執(zhí)行時間(秒)
"microsecs_running" : NumberLong(4603324),
"op" : "insert", //執(zhí)行操作類型
"ns" : "test.cc", //執(zhí)行操作數(shù)據(jù)庫
"insert" : { //執(zhí)行操作語句
"_id" : ObjectId("5bee323020e268b4d947a580"),
"name" : "aa"
},
"client" : "127.0.0.1:42066", //執(zhí)行操作客戶端
"numYields" : 0,
"locks" : { //執(zhí)行操作需要持有鎖
"Global" : "w"
},
"waitingForLock" : true, //是否鎖等待 已卷?
"lockStats" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(1),
"w" : NumberLong(1)
},
"acquireWaitCount" : {
"w" : NumberLong(1)
},
"timeAcquiringMicros" : {
"w" : NumberLong(22503637)
}
}
}
}
],
"fsyncLock" : true, //是否全局鎖定數(shù)據(jù)庫
"info" : "use db.fsyncUnlock() to terminate the fsync write/snapshot lock"
}
// 殺掉慢會話
db.killOp(380692)