學習筆記之MongoDB基礎命令

來源:互聯網
上載者:User
1.選擇資料庫

命令: use DATEBASE_NAME(資料庫名)
作用:若沒有該資料庫則直接建立,若有則切換資料庫
執行效果如下:

use runoob
switched to db runoob
db
runoob 2.查看當前所有的資料庫

命令:show dbs
執行效果如下:

show dbs
ad 0.000GB
admin 0.000GB
config 0.000GB
local 0.000GB
mycol 0.000GB
mycol001 0.000GB
name 0.000GB
nb 0.000GB

 1. **3.刪除資料庫操作**命令:db.dropDatabase()執行效果:

db.dropDatabase()
{ “dropped” : “name”, “ok” : 1 }

 **4.插入文檔**命令:db.COLLECTION_NAME.insert(document)執行效果:

db.col.insert({name:”浪奇”,
年齡:”24”,
愛好:”飛啊飛”
})

可直接定義變數document

document=({title: ‘MongoDB 教程’,
description: ‘MongoDB 是一個 Nosql 資料庫’,
by: ‘菜鳥教程’,
url: ‘http://www.runoob.com‘,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100
})

定義變數後可直接使用執行效果如下:

db.col.insert(document)
WriteResult({ “nInserted” : 1 })

       插入文檔也可以使用 db.col.save(document) 命令。如果不指定 _id 欄位 save() 方法類似於 insert() 方法。如果指定 _id 欄位,則會更新該 _id 的資料注意:3.2 版本後還有以下幾種文法可用於插入文檔: db.collection.insertOne():向指定集合中插入一條文檔資料 db.collection.insertMany():向指定集合中插入多條文檔資料
插入單條資料

var document=db.col.insertOne({“aa”:9})
document
{
“acknowledged” : true,
“insertedId” : ObjectId(“5a3761ac667e4339fe9b3a31”)
}

##### 插入多條資料
>

var res = db.collection.insertMany([{“b”: 3}, {‘c’: 4}])

res
{
“acknowledged” : true,
“insertedIds” : [
ObjectId(“571a22a911a82a1d94c02337”),
ObjectId(“571a22a911a82a1d94c02338”)
]
}

5.更新已有文檔命令:db.collection.update(   query,   update,   {     upsert: boolean,     multi: boolean,     writeConcern: document   })參數說明:query : update的查詢條件,類似sql update查詢內where後面的。update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。writeConcern :可選,拋出異常的層級。執行效果:`######查詢集合內容> db.col.find().pretty()                                          {        "_id" : ObjectId("5a375db0667e4339fe9b3a30"),        "title" : "MongoDB",        "description" : "MongoDB 是一個 Nosql 資料庫",        "by" : "菜鳥教程",        "url" : "http://www.runoob.com",        "tags" : [                "mongodb",                "database",                "NoSQL"        ],        "likes" : 100}#####修改某一欄位> db.col.update({title:"MongoDB"},{$set:{title:"MongoDB   修改此欄位"}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })#####重新查詢集合內容> db.col.find().pretty(){        "_id" : ObjectId("5a375db0667e4339fe9b3a30"),        "title" : "MongoDB   jjdfdjivnjds",        "description" : "MongoDB 是一個 Nosql 資料庫",        "by" : "菜鳥教程",        "url" : "http://www.runoob.com",        "tags" : [                "mongodb",                "database",                "NoSQL"        ],        "likes" : 100}在3.2版本開始,MongoDB提供以下更新集合文檔的方法:  db.collection.updateOne() 向指定集合更新單個文檔  db.collection.updateMany() 向指定集合更新多個文檔`首先我們在test集合裡插入測試資料>use test>db.col.insert( [{"name":"abc","age":"25","status":"zxc"},{"name":"dec","age":"19","status":"qwe"},{"name":"asd","age":"30","status":"nmn"},] )更新單個文檔> db.test_collection.updateOne({"name":"abc"},{$set:{"age":"28"}}){ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }> db.test_collection.find(){ "_id" : ObjectId("59c8ba673b92ae498a5716af"), "name" : "abc", "age" : "28", "status" : "zxc" }{ "_id" : ObjectId("59c8ba673b92ae498a5716b0"), "name" : "dec", "age" : "19", "status" : "qwe" }{ "_id" : ObjectId("59c8ba673b92ae498a5716b1"), "name" : "asd", "age" : "30", "status" : "nmn" }>更新多個文檔> db.test_collection.updateMany({"age":{$gt:"10"}},{$set:{"status":"xyz"}}){ "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 3 }> db.test_collection.find(){ "_id" : ObjectId("59c8ba673b92ae498a5716af"), "name" : "abc", "age" : "28", "status" : "xyz" }{ "_id" : ObjectId("59c8ba673b92ae498a5716b0"), "name" : "dec", "age" : "19", "status" : "xyz" }{ "_id" : ObjectId("59c8ba673b92ae498a5716b1"), "name" : "asd", "age" : "30", "status" : "xyz" }>

WriteConcern.NONE:沒有異常拋出
WriteConcern.NORMAL:僅拋出網路錯誤異常,沒有伺服器錯誤異常
WriteConcern.SAFE:拋出網路錯誤異常、伺服器錯誤異常;並等待伺服器完成寫操作。
WriteConcern.MAJORITY: 拋出網路錯誤異常、伺服器錯誤異常;並等待一個主伺服器完成寫操作。
WriteConcern.FSYNC_SAFE: 拋出網路錯誤異常、伺服器錯誤異常;寫操作等待伺服器將資料重新整理到磁碟。
WriteConcern.JOURNAL_SAFE:拋出網路錯誤異常、伺服器錯誤異常;寫操作等待伺服器提交到磁碟的記錄檔。
WriteConcern.REPLICAS_SAFE:拋出網路錯誤異常、伺服器錯誤異常;等待至少2台伺服器完成寫操作。 刪除文檔

如刪除集合下全部文檔:
db.colletion_name.deleteMany({})
刪除 status 等於 A 的全部文檔:
db.colletion_name.deleteMany({ status : “A” })
刪除 status 等於 D 的一個文檔:
db.colletion_name.deleteOne( { status: “D” } )。 查詢文檔

命令:db.col.find(query,projection)
query :可選,使用查詢操作符指定查詢條件
projection :可選,使用投影操作符指定返回的鍵。查詢時返迴文檔中所有索引值, 只需省略該參數即可(預設省略)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.