mongodb mysql配置_Nosql_MongoDB数据库配置以及基本指令
數據庫(database)
-數據庫的服務器
-服務器用來保存數據
-mongod用來啟動服務器
-數據庫的客戶端
-客戶端用來操作服務器,對數據進行增刪改查的操作
-mongo用來啟動客戶端
(不能關閉啟動的服務器,否則新開的客戶端無法連接)
擴展:將mongodb設置為系統服務,可以自動在后臺啟動,不需要每次收到啟動(http://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/)
①-在C盤根目錄data文件夾中創建log文件夾
②-創建配置文件
在目錄 (你安裝MongoDB的路徑)下添加一個配置文件
mongod.cfg
(內容:
systemLog:
destination:filepath: c:\data\log\mongod.logstorage:
dbPath: c:\data\db
)
③-以管理員的身份打開命令行窗口
④-執行如下命令
sc.exe create MongoDB binPath= "\"C:\MongoDB\bin\mongod.exe\" --service --config=\"C:\MongoDB\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
備注:sc.exe create MongoDB binPath= "\"mongod的bin目錄\mongod.exe\" --service --config=\"mongo的安裝目錄\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
⑤-啟動mongodb服務
⑥-如果啟動失敗,證明上邊的操作有誤,
在控制臺輸入 sc delete MongoDB 刪除之前配置的服務
然后從第一步再來一次
-- 基本概念
數據庫(database)
集合 (collection)
文檔(document)
-在MongoDB中,數據庫和集合都不需要手動創建
當我們創建文檔時,如果文檔所在的集合或者數據庫不存在會自動創建數據庫和集合
-- 基本指令
show dbs
show databases
- 顯示當前的所有數據庫
use 數據庫名
- 進入到指定的數據庫中
db
- db表示的是當前所處的位置
show collections
- 顯示數據庫中所有的集合
-- 數據庫的CRUD(增刪改查)的操作
- 向數據庫中插入文檔
db..insert(doc)
- 向集合中插入一個文檔
- 例子: 向test數據庫中的,stus集合中插入一個新的學生對象
{name:"孫悟空",age:12,gender:"男"}
db.stus.insert({name:"孫悟空",age:12,gender:"男"})
db..find()
- 查詢當前集合中所有的文檔
①-插入數據
向數據庫中插入文檔
db..insert()
- 向集合中插入一個或多個文檔
- 當我們向集合中插入文檔時,如果沒有給文檔指定_id屬性,則數據庫會自動為文檔添加_id,該屬性用來作為文檔的唯一標
- _id我們可以自己指定,如果我們指定了數據庫就不會再添加了,如果自己指定_id 也必須確保它的唯一性
db..insertOne()
- 插入一個文檔對象
db..insertMany()- 插入多個文檔對象
②-查詢
查詢
db.collention.find()- find()用來查詢集合中所有符合條件的文檔
- find()可以接收一個對象作為條件參數 {}表示查詢集合中所有的文檔 {屬性:值} 查詢屬性是指定值的文檔
db.collection.findOne()- 用來查詢集合中符合條件的第一個文檔
- findOne()返回的是一個文檔對象
db.collection.find({}).count()- 查詢所有結果的數量
③-修改
修改
db.collection.update(查詢條件,新對象)- update()默認情況下使用新對象替換舊對象
- 如果需要修改指定的屬性,而不是替換需要使用"修改操作符"來完成修改
$set可以用來修改文檔中的指定屬性
$unset 可以用來刪除文檔中的指定屬性- update()默認修改一個
db.collection.updateOne()- 修改一個符合條件的文檔
db.collection.updateMany()- 同時修改多個符合條件的文檔
db.collection.replaceOne()- 替換一個文檔
④-刪除
刪除
db.collection.remove()-刪除符合條件的所有文檔(默認情況下會刪除多個)
如果remove()第二個參數傳遞一個true,則只會刪除一個
- 如果只傳遞一個空對象作為參數,則會刪除集合中的所有文檔
db.collection.deleteOne()
db.collection.deleteMany()-remove()可以根據條件來刪除文檔,傳遞的條件的方式和find()一樣
db.collection.drop();-刪除集合
db.dropDatabase()- 刪除數據庫
文檔(document)
文檔是MongoDB中數據的基本單元,類似關系數據庫的行,多個鍵值對有序的放置在一起便是文檔
MongoDB中以文檔的方式存取記錄,如一條記錄格式如下:
{“username”:“sunsu”,“age”:12,email:'damowang@huohu.com','sex':女}
{“username”:“sunsu”,“age”:12}
{“Username”:“sunsu”,“age”:12}
{“Username”:“sunsu”}
注意:
(1)以上是幾個不同的文檔,MongoDB區分大小寫的數據類型,第一個age字段是數字類型,第二個age是字符串類型
(2)每一個文檔尺寸不能超過16M
(3)MongoDB的文檔不能有重復的鍵
(4)文檔的鍵是字符串。除了少數例外情況,鍵可以使用任意UTF-8字符
文檔之間的關系:
一對一(one to one)
-? ? 夫妻 (一個丈夫 對應 一個妻子)
-? ?在MongoDB,可以通過內嵌文檔的形式來體現出一對一的關系
一對多(one to many)/多對一(many to one)
-? ?父母 - 孩子
用戶 - 訂單
文章 - 評論
- 也可以通過內嵌文檔來映射一對多的關系
多對多(many to many)
-? 分類 - 商品
老師 - 學生
舉例:
//一對一
db.wifeAndHusband.insert([{
name:"黃蓉",
husband:{ name:"郭靖" }
}, {
name:"潘金蓮",
husband:{ name:"武大" }
}]);
db.wifeAndHusband.find();
//一對多 用戶(users)和訂單(orders)
db.users.insert([{
username:"孫悟空"},{
username:"豬八戒"}]);
db.order.insert({list:["蘋果","香蕉","大鴨梨"],user_id:ObjectId("5d2bd20b782eae7ac9b5b5be")
});
db.users.find();
db.order.find();//查找用戶孫悟空的訂單var user_id =db.users.findOne({
username:"孫悟空"})._id;
db.order.find({user_id:user_id});
//多對多
db.teachers.insert([{
name:"洪七公"},{
name:"黃藥師"},{
name:"龜仙人"}]);
db.stus.insert([{
name:"郭靖",
tech_ids:[
ObjectId("5d2bd518782eae7ac9b5b5c4"),
ObjectId("5d2bd518782eae7ac9b5b5c5")]},{
name:"孫悟空",
tech_ids:[ObjectId("5d2bd518782eae7ac9b5b5c4"),
ObjectId("5d2bd518782eae7ac9b5b5c5"),
ObjectId("5d2bd518782eae7ac9b5b5c6")]}]);
db.teachers.find();
db.stus.find();
集合(collection)
集合就是一組文檔,多個文檔組成一個集合,集合類似于mysql里面的表,
無模式是指,在同一個集合中可以包含不同格式的文檔,如:
{“Name”:“Mongodb”,“Type”:“Nosql”}
{“UserName”:“Sunsu”,“age”:12,“Gender”:“male”}
以上兩個文檔可以放在同一個集合中
在mysql需要先建表再插入數據
模式自由:意思是集合里面沒有行和列的概念
注意:MongoDB中的集合不用創建、沒有結構,所有可以放不同格式的文檔
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的mongodb mysql配置_Nosql_MongoDB数据库配置以及基本指令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: extjs 方法执行顺序_TestNG之
- 下一篇: python四舍五入保留小数点后三位_P