MongoDB的Shell基本操作
轉載請出自出處: http://eksliang.iteye.com/blog/2174081
一.mongodb客戶端
? ? ? ? 當我們在客戶端運行mongo 192.168.238.133:27017/test時,shell會連接到mongodb服務器的test數據庫,并將數據庫連接賦值給全局變量db。這個變量是shell訪問mongodb的主要入口點。
?
二.Shell基本操作
1、連接mongodb
mongo 127.0.0.1:27017/test
2、創建用戶
?use user
3、查看所有數據庫
show dbs
4.給指定數據庫添加集合
方式一:db.user.insert({"name":"ickes"})
這樣會給數據庫添加一個集合并往集合中添加一條記錄
方式二:db.createCollection("scot.user")
5、查看當前數據庫里面的集合
show collections
6、查看當前使用的數據庫
db
?
三、shell對數據庫的CURD
1、insert()函數可以將一個文檔添加到集合中
格式:db.collectionName.insert({文檔})
> user={"userName":"ickes","userPwd":"xl123"} db.user.insert(user);
?2、find()或者findOne()查詢集合里面的文檔(文檔查詢非常靈活,后面會專門討論)
格式:db.collectionName.find()或者db.collectionName.findOne()
> db.user.find() --查詢所有文檔 { "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "ickes" } { "_id" : ObjectId("54ae4bf10854b94e41b45ba4"), "userName" : "ickes", "userPwd" : "xl123" }
??
> db.user.findOne()--查詢第一條數據 { "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "ickes" }
3、修改文檔(文檔修改非常靈活,后面會專門討論)
?修改使用update()函數
格式:db.collectionName.update({查詢條件},{更新條件})
> user=db.user.findOne() --查詢第一個文檔 { "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "ickes" } > user.name='update.ickes' --將name修改為updae.ickes update.ickes > db.user.update({"name":"ickes"},user) --更name=ickes的文檔 WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.user.findOne() --再次查看,果然更新成功 { "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "update.ickes" }
?實際上上面這種方式是文檔的替換,上面執行db.user.update()時,實際上是將新文檔替換數據庫中匹配的文檔。怎么只修改文檔的某個屬性,后面會單獨講,mongodb的修改器
?
4、刪除文檔
使用remove()函數,可將文檔從數據庫中永久刪除。
格式db.collectionName.remove({查詢條件}),如果查詢條件為空會刪除索引文檔,記住空是這樣的空(db.collectionName.remove({}))
> db.user.find()--先查看當前集合中的文檔,兩個 { "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "update.ickes" } { "_id" : ObjectId("54ae51210854b94e41b45ba5"), "pwd" : "aa" } > db.user.remove({"pwd":"aa"}) --刪除pwd=aa的文檔 WriteResult({ "nRemoved" : 1 }) --打印刪除成功 > db.user.find() --再次查看,果然修改成功了 { "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "update.ickes" }
?
?
四、刪除數據中的集合
格式 db.collectionName.drop();
> db.user.drop() true > show collections system.indexes test
?
五、刪除數據庫
格式db.dropDatabase()
> show dbs --查看當前實例擁有的數據庫 admin (empty) local 0.078GB test 0.078GB user 0.078GB > use user --切換到user數據庫 switched to db user > db --查看一下,是否真的切換成功 user > db.dropDatabase() --刪除當前數據庫 { "dropped" : "user", "ok" : 1 } > show dbs --再次查看,果然沒有了 admin (empty) local 0.078GB test 0.078GB
?
?
?六、Shell幫助查看
? ? ? ?由于MongoDB是一個簡化了JavaScript的shell,可以通過查看JavaScript的在線文檔得到大量幫助。對于MongoDB特有的功能,shell內置了幫助文檔,可以使用help()方法進行查看
? ? ? 數據庫級別的幫助:db.help()
? ? ? 集合級別的幫助:db.collectionName.help()
? ? ? 如果想知道一個函數是做什么的,可以直接在shell中輸入函數名(函數名不要括號),這樣可以直接看到該函數的JavaScript代碼,例如
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
