1. 程式人生 > >MongoDB 用法入門(windows)①

MongoDB 用法入門(windows)①

根據 all 默認 set www 安裝包 屬性 str red

概述

大家對數據庫肯定不陌生,肯定也有很多人用過MySQL,但是在用MySQL的時候各種建表,寫表之間的關聯讓人非常頭疼。

MongoDB也是一種數據庫,但是它不是用表,而是用集合來裝數據的,我對這種數據儲存方式很感興趣。所以我根據MongoDB3.6的官方說明文檔整理了MongoDB入門級用法,供自己開發時參考,相信對其他人也有用。

這是慕課網上MongoDB的課程:mongoDB入門篇

這是MongoDB官方說明文檔:The MongoDB Manual

什麽是MongoDB

Mongodb是面向文檔數據庫(Document Oriented Databases),同時,它也是“NoSQL

數據庫”。

它非常容易擴展,並且速度很快。

MongoDB的安裝

1.去mongodb的官網http://www.mongodb.org/downloads下載msi安裝包(CommunityServer版本)。安裝的默認路徑是:C:\Program Files\MongoDB\Server\3.6\bin

2.為了啟動mongodb方便,將mongod.exe路徑加入環境變量。電腦->屬性->高級系統設置->環境變量,在path裏加入默認路徑:C:\Program Files\MongoDB\Server\3.6\bin

3.在D盤新建一個mongodb文件夾用來放數據文件,並在mongodb文件夾下建立data,logs文件夾,在logs文件夾下建立mongodb.log文件

4.以管理員啟動cmd,並且輸入:mongod --dbpath D:\mongodb\data\ --logpath D:\mongodb\logs\mongodb.log --install --serviceName"MongoDB"

5.以管理員啟動cmd,net start mongodb啟動mongodb服務;mongo 127.0.0.1:27017進入mongo數據庫;net stop MongoDB關閉mongodb服務

數據庫操作

1.創建並進入數據庫

use DATABASE_NAME

創建名字為TEST的數據庫,並進入數據庫;如果數據庫已存在,則直接進入數據庫。

use TEST

2.顯示數據庫。

show dbs

顯示所有數據庫

show dbs

3.刪除數據庫

db.dropDatabase()

刪除TEST數據庫

use TEST
db.dropDatabase()

集合操作

1.創建集合

db.createCollection(name, options)

創建集合名imooc的數據庫

db.createCollection("imooc")

2.查看集合。

show collections

查看所有集合

show collections

3.刪除集合

db.COLLECTION_NAME.drop()

刪除集合imooc

db.imooc.drop()

數據操作

1.create操作

db.collection.insertOne()
db.collection.insertMany()
db.collection.insert()

寫入單條和多條數據:

db.inventory.insertOne(
   { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
db.inventory.insertMany([
   { item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
   { item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
   { item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])

2.Read操作

db.collection.find()

查找status為"D"的數據,並且顯示5條。

db.inventory.find( { status: "D" } ).limit(5)

查找status為"D"的數據,並且以格式化顯示。

db.inventory.find( { status: "D" } ).pretty()

查找status為"A"或"D"的數據。

db.inventory.find( { status: { $in: [ "A", "D" ] } } )

查找status為"A"並且qty為30的數據。

db.inventory.find( { status: "A", qty: 30} )

查找status為"A"或者qty為30的數據。

db.inventory.find( { $or: [ { status: "A" }, { qty:30 } ] } )

查找status為"A"的第二條數據。

db.inventory.find( { "status.1":  "A" } )

查找instock屬性中qty為20的數據。(instock屬性是一個集合)

db.inventory.find( { 'instock.qty': 20 } )

查找instock屬性中qty為20的第一條數據。(instock屬性是一個集合)

db.inventory.find( { 'instock.0.qty': 20 } )

查找status為"A"的數據,並且只返回_id,item和status字段

db.inventory.find( { status: "A" }, { item: 1, status: 1 } )

查找status為"A"的數據,並且只返回item字段,不返回status和_id字段

db.inventory.find( { status: "A" }, { item: 1, status: 0, _id: 0 } )

查找status為"A"的數據,並且只返回_id和item字段,以及size字段的uom屬性

db.inventory.find({ status: "A" }, { item: 1, "size.uom": 1 })

查找item為null或者不存在item屬性的數據

db.inventory.find( { item: null } )

查找item屬性為null的數據

db.inventory.find( { item : { $type: 10 } } )

查找不存在item屬性的數據

db.inventory.find( { item : { $exists: false } } )

相當於db.users.find( { type: 2 } ),因為結果返回一個循環指針

var myCursor = db.users.find( { type: 2 } );
myCursor

3.Update操作

db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
db.collection.update()

將item為"paper"的第一條數據的size.uom改為"cm",status改為"P"

db.inventory.updateOne(
   { item: "paper" },
   {
     $set: { "size.uom": "cm", status: "P" },
   }
)

將item為"paper"的所有數據的size.uom改為"cm",status改為"P"

db.inventory.updateMany(
   { item: "paper" },
   {
     $set: { "size.uom": "cm", status: "P" },
   }
)

把item為"paper"的第一個數據替換為後一個數據

db.inventory.replaceOne(
   { item: "paper" },
   { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)

4.delete操作

db.collection.deleteOne()
db.collection.deleteMany()
db.collection.remove()

刪除第一個status為"D"的數據;刪除所有status為"D"的數據

db.inventory.deleteOne( { status: "D" } )
db.inventory.deleteMany( { status: "D" } )

MongoDB 用法入門(windows)①