MongoDB資料庫操作詳解:基礎篇
來源:運維家
主旨
環境
mongodb資料庫
PS:如果沒有搭建的可以看下前兩天釋出的部署教程。
連線資料庫
語法: mongo IP:Port例項: mongo 192.168.112.130:27017
檢視資料庫
語法: show dbs # 檢視所有資料庫 db # 檢視當前位於哪個資料庫中例項: testrs:PRIMARY> show dbs admin 0.000GB local 0.000GB testrs:PRIMARY> testrs:PRIMARY> db admin testrs:PRIMARY>
建立(切換)資料庫
語法: use database_name例項: testrs:PRIMARY> use yunweijia # 建立資料庫yunweijia switched to db yunweijia testrs:PRIMARY> db # 檢視當前位於哪個資料庫中 yunweijia testrs:PRIMARY> testrs:PRIMARY> show dbs # 檢視所有資料庫 admin 0.000GB local 0.000GB testrs:PRIMARY>
testrs:PRIMARY> db.yunweijia.insert({"name":"運維家"}) # 插入WriteResult({ "nInserted" : 1 })testrs:PRIMARY> show dbs # 再次檢視,就發現新建立的資料庫顯示出來了admin 0.000GBlocal 0.000GByunweijia 0.000GBtestrs:PRIMARY>
刪除資料庫
語法: # 刪除當前資料庫,執行該命令的時候一定要注意自己在哪個資料庫中 db.dropDatabase()例項: testrs:PRIMARY> show dbs admin 0.000GB local 0.000GB yunweijia 0.000GB testrs:PRIMARY> use yunweijia switched to db yunweijia testrs:PRIMARY> db.dropDatabase() { "dropped" : "yunweijia", "ok" : 1 } testrs:PRIMARY> show dbs admin 0.000GB local 0.000GB testrs:PRIMARY>
建立集合
語法: db.createCollection(name, options) name: 要建立的集合名稱 options: 可選引數, 指定有關記憶體大小及索引的選項 capped:(可選)如果為 true,則建立固定集合。固定集合是指有著固定大小的集合,當達到最大值時,它會自動覆蓋最早的文件。當該值為 true 時,必須指定 size 引數。 size:(可選)為固定集合指定一個最大值,即位元組數。如果 capped 為 true,也需要指定該欄位。 max:(可選)指定固定集合中包含文件的最大數量。例項: testrs:PRIMARY> use yunweijia; switched to db yunweijia testrs:PRIMARY> db.createCollection("ceshi") { "ok" : 1 } testrs:PRIMARY> show collections # 檢視集合 ceshi testrs:PRIMARY>
testrs:PRIMARY> db.yunweijia.insert({"name":"運維家"})WriteResult({ "nInserted" : 1 })testrs:PRIMARY>testrs:PRIMARY> show collectionsceshiyunweijiatestrs:PRIMARY>
刪除集合
語法: db.collection.drop()例項: testrs:PRIMARY> use yunweijia # 切換資料庫到yunweijia switched to db yunweijia testrs:PRIMARY> show collections # 檢視所有集合 ceshi jier suner yunweijia testrs:PRIMARY> db.jier.drop() # 刪除jier集合 true testrs:PRIMARY> show collections # 檢視所有集合,發現jier集合被刪除了 ceshi suner yunweijia testrs:PRIMARY>
插入文件
語法:
# 若插入的資料主鍵已經存在,則會拋 org.springframework.dao.DuplicateKeyException 異常,提示主鍵重複,不儲存當前資料。
db.COLLECTION_NAME.insert(document)
# 如果 _id 主鍵存在則更新資料,如果不存在就插入資料。
db.collection.insertOne()
格式為:
db.collection.insertOne(
<document>,
{
writeConcern: <document>
}
)
# 如果 _id 主鍵存在則更新資料,如果不存在就插入資料。
db.collection.replaceOne()
# 向一個集合中插入多個文件
db.collection.insertMany()
格式:
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
引數說明:
document:要寫入的文件。
writeConcern:寫入策略,預設為 1,即要求確認寫操作,0 是不要求。
ordered:指定是否按順序寫入,預設 true,按順序寫入。
例項1如下:
testrs:PRIMARY> db.col.insert({title: 'MongoDB 基礎操作', description: 'MongoDB 是一個 Nosql 資料庫', by: '運維家', url: '['mongodb', 'database', 'NoSQL'], likes: 100})WriteResult({ "nInserted" : 1 })testrs:PRIMARY> # 以上例項中 col 是我們的集合名,如果該集合不在該資料庫中, MongoDB 會自動建立該集合並插入文件。# 檢視已插入文件testrs:PRIMARY> db.col.find(){ "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB 基礎操作", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 }testrs:PRIMARY>
例項2如下:
先將資料定義為一個變數,然後執行插入操作。
testrs:PRIMARY> document=({title: 'MongoDB 基礎操作', description: 'MongoDB 是一個 Nosql 資料庫', by: '運維家', url: '['mongodb', 'database', 'NoSQL'], likes: 100});# 結果顯示如下{ "title" : "MongoDB 基礎操作", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100}# 執行插入操作testrs:PRIMARY> db.col.insert(document)WriteResult({ "nInserted" : 1 })testrs:PRIMARY> db.col.find(){ "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB 基礎操作", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 }{ "_id" : ObjectId("62011c0f0e4263c83bd0dec9"), "title" : "MongoDB 基礎操作", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 }testrs:PRIMARY>
更新文件
語法: 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 :可選,丟擲異常的級別。例項: testrs:PRIMARY> db.col.update({'title':'MongoDB 基礎操作'},{$set:{'title':'MongoDB資料庫'}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) testrs:PRIMARY> db.col.find().pretty() { "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB資料庫", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 } { "_id" : ObjectId("62011c0f0e4263c83bd0dec9"), "title" : "MongoDB 基礎操作", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 } testrs:PRIMARY
db.col.update({'title':'MongoDB 基礎操作'},{$set:{'title':'MongoDB資料庫'}},{multi:true})
刪除文件
語法: db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } ) 引數解釋: query :(可選)刪除的文件的條件。 justOne : (可選)如果設為 true 或 1,則只刪除一個文件,如果不設定該引數,或使用預設值 false,則刪除所有匹配條件的文件。 writeConcern :(可選)丟擲異常的級別。
例項如下:
# 新插入一條資料,用來比較testrs:PRIMARY> db.col.insert({title: 'MongoDB 基礎操作', ... description: 'MongoDB 是一個 Nosql 資料庫',... by: '運維家',... url: '['mongodb', 'database', 'NoSQL'],... likes: 100... })WriteResult({ "nInserted" : 1 })testrs:PRIMARY> db.col.find() # 可以看到有三條,其中兩條資料title一樣{ "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB資料庫", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 }{ "_id" : ObjectId("62011c0f0e4263c83bd0dec9"), "title" : "MongoDB 基礎操作", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 }{ "_id" : ObjectId("62011e580e4263c83bd0deca"), "title" : "MongoDB 基礎操作", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 }testrs:PRIMARY> db.col.remove({'title':'MongoDB 基礎操作'}) # 根據title為條件進行刪除WriteResult({ "nRemoved" : 2 })testrs:PRIMARY> db.col.find() # 結果是將兩條title一致的全部進行刪除{ "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB資料庫", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 }testrs:PRIMARY>
db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
>db.col.remove({})>db.col.find()
查詢文件
語法: db.collection.find(query, projection) 引數解釋: query :可選,使用查詢運算子指定查詢條件 projection :可選,使用投影運算子指定返回的鍵。查詢時返回文件中所有鍵值, 只需省略該引數即可(預設省略)。 如果你需要以易讀的方式來讀取資料,可以使用 pretty() 方法,語法格式如下: db.col.find().pretty()例項: testrs:PRIMARY> db.col.find().pretty() { "_id" : ObjectId("62011ae10e4263c83bd0dec8"), "title" : "MongoDB資料庫", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "運維家", "url" : "[ "mongodb", "database", "NoSQL" ], "likes" : 100 } testrs:PRIMARY>
至此,mongodb的基礎操作,結束。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027826/viewspace-2987356/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB資料庫基礎操作MongoDB資料庫
- 資料庫篇-mysql詳解( 一 )之基礎應用資料庫MySql
- MySQL資料庫基礎詳解MySql資料庫
- mongodb基礎整理篇————常規操作[二]MongoDB
- MongoDB 資料庫操作MongoDB資料庫
- mongodb資料庫操作MongoDB資料庫
- 【資料庫】Redis基礎篇資料庫Redis
- MongoDB基礎操作MongoDB
- nodejs操作mongodb資料庫(mongodb)NodeJSMongoDB資料庫
- Mysql資料庫基礎操作命令MySql資料庫
- 資料庫——MongoDB——>Java篇資料庫MongoDBJava
- Mongodb-基礎操作MongoDB
- 熱璞資料庫HotDB 基礎架構詳解資料庫架構
- 資料庫——基礎(資料庫操作,表格操作)——增加高階查詢資料庫
- 詳解JAVA資料庫基本操作Java資料庫
- Django基礎之七(資料庫操作)Django資料庫
- FastAPI - Tortoise ORM 資料庫基礎操作ASTAPIORM資料庫
- 資料庫篇:mysql鎖詳解資料庫MySql
- python操作mongodb資料庫PythonMongoDB資料庫
- MongoDB 基本操作詳解MongoDB
- 大資料解決方案-(基礎篇)大資料
- Python操作MongoDB文件資料庫PythonMongoDB資料庫
- MongoDB資料庫的基本操作梳理MongoDB資料庫
- Python資料庫MongoDB騷操作Python資料庫MongoDB
- Python 資料庫騷操作 -- MongoDBPython資料庫MongoDB
- JDBC-MySql基礎操作詳解JDBCMySql
- SQL與NoSQL資料庫入門基礎知識詳解SQL資料庫
- 達夢資料庫安裝及基礎操作資料庫
- 資料庫基礎知識講解資料庫
- ASP.NET MongoDB資料庫操作類ASP.NETMongoDB資料庫
- Sql Server基礎:資料型別詳解SQLServer資料型別
- 分散式文件儲存資料庫之MongoDB基礎入門分散式資料庫MongoDB
- 資料庫 基礎資料庫
- 資料庫基礎資料庫
- Pyspark資料基礎操作集合Spark
- RN API基礎操作篇API
- JS基礎篇–正規表示式詳解JS
- mysql資料庫基礎知識--一分鐘讓你資料庫入門(sql基礎語法篇)MySql資料庫