mongodb--總結

來源:互聯網
上載者:User
使用use 切換到某一個資料庫,使用db.表名.命令名({參數}) 來執行相關的動作。此時的db指代的就是預設切換到的那個db
尋找時返回的一般都是整個文檔,需要擷取到文檔中的某一個欄位,{欄位名:1}
有些比較奇怪的寫法find({},{},number1,number2),number1是limit,number2是skip,會在booster報錯...
第一個預設應該是查詢條件,第二個預設應該是查詢的結果。
顯示建立固定集合createCollection("文檔名",{capped:true,size:20480,max:100}),指定最大多大,最多插入多少文檔,保證插入順序一致,保證修改後順序不會發生變化。如果要擷取前n個值,使用limit
如果擷取後10個值,可以使用$natural:-1,來使自然順序反轉
validate()函數可以檢查集合的大小。
Count函數本質和skip()是衝突的,解決的關鍵在於count(true)
Distinct()函數可以直接擷取某個屬性,查詢所有的可能的結果,但是返回的數量有限。
Group()函數,有三個參數,key,initial,reduce函數,分組數目不可以超過10000,否則會報錯。
$In,$Nin,$or,$and
$slice:[] -----對數組操作,指定返回數組的元素個數,也可以作用於文檔db.zzy_test.find({'name':'哲學'},{'pic.name':{$slice:2}})還是返回的全部資訊,與-1不能連用。
$push: 插入元素到數組的末尾,這裡需要結合update指令db.zzy_test.update({"name":"哲學"},{$push:{'pic.thumb':2}})
$mod:取餘數的運算,指定餘數為多少db.zzy.find({"age":{$mod:[2,0]}})
$size:指定數組的大小為多少,精確匹配的值。db.zzy_test.find({"pic.info":{$size:2}})
$exists:欄位是否存在,但是不能使用索引,對全表進行掃描
Javascript代碼,
Find(“this.age < 3”)
var f
f = function() { return this.age < 3 }
db.zzy.find(f)
$push:針對數組,往數組裡面加內容,但是每次只能加一個,[]中括弧裡面的內容,會被當成一個子數組存放進去。因此需要注意的是,如果想push多個元素的話,需要再[]前面加上$each,$slice可以作為參數,限制數組中的元素個數,需要與$each連用
$addToSet:添加的數組不能重複 $push:添加的數組可以重複
//db.zzy_test.update({'name':'哲學'},{$addToSet:{'pic.thumb':["woca2"]}})
$unset db.zzy_test.update({'name':'哲學'},{$unset:{'pic.thumb':'woyun2'}})刪除的是對應的key值,無論匹配是否成功,刪除的都是thumb這個數組。。。。。。。。。。。
$inc  只能對數字進行加減操作 db.zzy_test.update({'name':'哲學'},{$inc:{'loadstate':4}})
$pop 命令不會刪除數組,只會刪除數組的元素,這點與unset還是不一樣的。而且unset會刪除掉匹配的所有的內容
db.zzy.update({name:"user_1"},{$pop:{"names":1}})可以指定彈出的是第一個還是最後一個
db.zzy.update({name:"user_1"},{$push:{'names':{$each:['zhaoliu','wangwu']}}})
db.zzy.update({name:"user_1"},{$pullAll:{'names':['zhaoliu','wangwu']}})
$pull本身可以去掉重複的數組元素,但是不可以使用[]來去掉多個元素。
$pullAll可以去掉多個元素
db.$cmd.findOne({getlasterror:1})查看上一次的錯誤資訊
db.zzy.remove({"name":"user_1"})刪除某條文檔
db.zzy.renameCollection(“newname”)改名
Db.zzy.remove({})刪除所有文檔
Db.zzy.drop()刪除集合
db.dropDatabase()刪除資料庫,注意當前使用的是哪個資料庫


db.zzy.ensureIndex({"age":1})
db.zzy.find().min({age:1}).max({age:3})
Min max的使用,必須有索引,否則會報錯


mapReduce函數。三部分組成,map,Reduce, finalize--用來處理reduce返回的結果
mapReduce----靈活 彙總函式----高效


Mongodump:備份  -d databasename -c collectionname
預設備份目錄的結構為 ./dump/databasename/collectionname.bson
.bson檔案是一個副本  .json檔案是索引和定義
Mongorestore:恢複   --drop刪除已存在的資料並恢複,不加此命令將會出現追加的效果(注意備份的目錄和回複切換到的目錄)
Mongoimport 可以載入的檔案格式有CSV TSV 對於前兩種,可以指定第一行作為名稱列表。JSON 
Mongoimport -d -c --type csv --headerline < xx.csv   其中指定了種類 和 名稱列表
Mongoexport 
Mongoexport -d -c -q{} -f -id,Title,Message,Author --csv > blogpost.csv  其中-q是查詢條件,-f是欄位
Mongod:需要首先啟動mongodb的服務
Mongo:啟動mongodb資料庫


關於--auth指令,開啟使用者認證
切換到某個資料庫,使用
db.createUser({user:"admin",pwd:"pass",roles:["readWrite","dbAdmin"]})
關閉mongod,重新開啟mongod --auth
db.removeUser(“admin”)
登陸資料庫後,切換到某個資料庫後,使用db.auth(“user”,”pass”)即可
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.