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 :可選,使用投影操作符指定返回的鍵。查詢時返迴文檔中所有索引值, 只需省略該參數即可(預設省略)。