天天看點

【Mongodb】 增删改查

檢視目前資料庫

db
----------------------------------


檢視所有資料庫

show dbs / show databases

----------------------------------

切換資料庫

use db_name
# 注意 
use 如果後面資料庫不存在,會自動建立
但此時,show dbs 查詢不到
插入資料後方可查詢到
----------------------------------


删除目前的資料庫

db.dropDatabase()

----------------------------------


手動建立集合

db.createCollection(name,optons)
db.createCollection("str")
db.createCollection("sub",{cappec:true,size:10})
參數:capped:預設值為false表示不設定上限,值為true表示設定上限
參數size: 當capped為true時,需要設定此參數,表示上限大小,當文檔到上限時,會将之前資料覆寫,機關為位元組

檢視集合   show collections
删除集合   db.集合名稱.drop()

----------------------------------
      

Mongodb 存儲資料類型

string : 字元串

Boolean:存儲一個布爾值

lnterger :整數 32位或64位

Double:存儲浮點值

Arrays:數組或清單,多個值存儲到一個鍵

object:用于嵌入式文檔,即一個值為一個文檔

Null : 存儲一個空值

Timestamp:表示從1970-1-1到現在的秒數

Date:存儲目前日期或時間的unix時間格式

objectID 12位元組的十六進制的數

  前4個位元組:時間戳

  接下來3個位元組:機器ID

  接下來2個位元組中Mongodb服務程序ID

  最後三個位元組簡單的增量值

> show dbs
admin  (empty)
local  0.078GB
zml    0.078GB
> use zml
switched to db zml
> db.createCollection("test1")
{ "ok" : 1 }
> db.test1.insert({"name":"zhangsan"})
WriteResult({ "nInserted" : 1 })
> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
> db.test1.insert({_id:11111,name:"wanger",age:"12"})
WriteResult({ "nInserted" : 1 })
> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
{ "_id" : 11111, "name" : "wanger", "age" : "12" }
> db.test1.insert({_id:11111,name:"wanger",age:"12"})
WriteResult({
  "nInserted" : 0,
  "writeError" : {
    "code" : 11000,
    "errmsg" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: zml.test1.$_id_  dup key: { : 11111.0 }"
  }
})
> db.test1.save({_id:11111,name:"wanger",age:"12"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
{ "_id" : 11111, "name" : "wanger", "age" : "12" }
> db.test1.save({_id:11111,name:"wanger",age:"13"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
{ "_id" : 11111, "name" : "wanger", "age" : "13" }      

總結:db.集合名稱.insert({})  插入資料,沒有輸入ID就自動建立ID,有ID就按輸入的ID,如果ID已存在就報錯

           db.集合名稱.save({}),輸入相同的ID,則更新資料,不是存在的ID,則想當于插入資料

更新資料

db.集合名稱.update(<query>,<update>,{multi:<boolean>})

參數query:查詢條件

參數update:更新操作符

參數multi:可選,預設是false,表示隻更新找到的第一條記錄

值為true表示把滿足條件的文檔全部更新

db.stu.update({name:hr}),{name:mnc} ) 更新一條

db.stu.update({name:hr}),{$set:{name:mnc} }) 更新一條

db.stu.update({name:hr}),{$set:{name:mnc}},{multi:true})  更新一條

> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
{ "_id" : 11111, "name" : "wanger", "age" : "13" }
{ "_id" : 11110, "name" : "wanger", "age" : "13" }
> db.test1.update({"name":"wanger"},{"name":"lisi"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
{ "_id" : 11111, "name" : "lisi" }
{ "_id" : 11110, "name" : "wanger", "age" : "13" }
> db.test1.update({"name":"wanger"},{$set:{"name":"lisi"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
{ "_id" : 11111, "name" : "lisi" }
{ "_id" : 11110, "name" : "lisi", "age" : "13" }      

删除操作

db.集合名稱.remove(<query>,{justOne:<boolean>})

> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
{ "_id" : 11111, "name" : "lisi" }
{ "_id" : 11110, "name" : "lisi", "age" : "13" }
{ "_id" : ObjectId("5f01ddb5b17ac23a4b796ba0"), "name" : "wanger", "age" : 12 }
{ "_id" : ObjectId("5f01ddbcb17ac23a4b796ba1"), "name" : "wangsan", "age" : 12 }
{ "_id" : ObjectId("5f01ddc5b17ac23a4b796ba2"), "name" : "wangsan", "age" : 14 }
{ "_id" : ObjectId("5f01ddc8b17ac23a4b796ba3"), "name" : "wangsan", "age" : 15 }
> db.test1.remove({name:"wangsan"},{justOne:true})
WriteResult({ "nRemoved" : 1 })
> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
{ "_id" : 11111, "name" : "lisi" }
{ "_id" : 11110, "name" : "lisi", "age" : "13" }
{ "_id" : ObjectId("5f01ddb5b17ac23a4b796ba0"), "name" : "wanger", "age" : 12 }
{ "_id" : ObjectId("5f01ddc5b17ac23a4b796ba2"), "name" : "wangsan", "age" : 14 }
{ "_id" : ObjectId("5f01ddc8b17ac23a4b796ba3"), "name" : "wangsan", "age" : 15 }
> db.test1.remove({name:"wangsan"})
WriteResult({ "nRemoved" : 2 })
> db.test1.find()
{ "_id" : ObjectId("5f01d623b17ac23a4b796b9f"), "name" : "zhangsan" }
{ "_id" : 11111, "name" : "lisi" }
{ "_id" : 11110, "name" : "lisi", "age" : "13" }
{ "_id" : ObjectId("5f01ddb5b17ac23a4b796ba0"), "name" : "wanger", "age" : 12 }