一、下載下傳位址:
軟體下載下傳位址:http://dl.mongodb.org/dl/win32/x86_64
二、安裝步驟:
在指令行視窗中,首先來了 bin 路徑,然後輸入指令:
mongod --dbpath D:\MongoDB\Server\3.4\data\db
在浏覽器輸入 http://localhost:27017 (27017 是 mongodb 的端口号)檢視,若顯示:
當然,我們也可以新打開一個指令行視窗進行資料庫操作,如下圖所示。(注:目前啟
動的資料庫視窗不要關閉)
三.錦上添花,配置本地 windows mongodb 服務
直接用指令行啟動還是不太友善,那麼我們可以手動将 mongodb 配置到 windows 服務
當中去。
1.先在 data 檔案下建立一個新檔案夾 log(用來存放日志檔案)
2.在 Mongodb 建立配置檔案 mongo.config
用記事本打開 mongo.config 檔案,然後輸入:
dbpath=D:\MongoDB\Server\3.4\data\db
logpath=D:\MongoDB\Server\3.4\data\log\mongo.log
cmd 先跳轉到 D:\MongoDB\Server\3.4\bin 目錄下。
輸入:
mongod --config "D:\MongoDB\Server\3.4\mongo.config" --install --serviceName "MongoDB"
即根據剛建立的 mongo.config 配置檔案安裝服務,名稱為 MongoDB。
可視化
1.軟體下載下傳
軟體下載下傳位址:https://robomongo.org/download
2.傻瓜式安裝
3.連接配接資料庫
三、基本操作
1、與mysql資料庫對比了解
2、cd到bin下指令行輸入mongo進入
C:\MongoDB\Server\3.4\bin>mongo
3、"show dbs"指令可以顯示所有資料庫的清單
4、執行"db"指令可以顯示目前資料庫對象或集合。
5、運作"use"指令,可以連接配接到一個指定的資料庫。
6、需要注意:
資料庫也通過名字來辨別。資料庫名可以是滿足以下條件的任意UTF-8字元串。
- 不能是空字元串("")。
- 不得含有' '(空格)、.、$、/、\和\0 (空字元)。
- 應全部小寫。
- 最多64位元組。
7、插入資料
> db.runoob.insert({"name":"菜鳥教程"})
WriteResult({ "nInserted" : 1 })
8、MongoDB 删除資料庫(db.dropDatabase())
>db.dropDatabase()
{ "dropped" : "runoob", "ok" : 1 }
9、切換到資料庫
>use runoob
switched to db runoob
>
10、如果要檢視已有集合,可以使用 show collections 或 show tables 指令:
> show collections
runoob
system.indexes
11、下面是帶有幾個關鍵參數的 createCollection() 的用法:
建立固定集合 mycol,整個集合空間大小 6142800 KB, 文檔最大個數為 10000 個。
> db.createCollection("mycol", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )
{ "ok" : 1 }
>
12、集合删除文法格式如下:
>use runoob
switched to db runoob
>show tables
site
>db.site.drop()#删除庫
true
>show tables
>
13、MongoDB 使用 insert() 或 save() 方法向集合中插入文檔,文法如下:
db.COLLECTION_NAME.insert(document)
執行個體
以下文檔可以存儲在 MongoDB 的 runoob 資料庫 的 col 集合中:
>db.col.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一個 Nosql 資料庫',
by: '菜鳥教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
14、檢視已插入文檔:
> db.col.find()
{ "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "菜鳥教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
>
15、update() 方法用于更新已存在的文檔。文法格式如下:
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:可選,抛出異常的級别。
執行個體
16、我們在集合 col 中插入如下資料:
>db.col.insert({
title: 'MongoDB 教程',
description: 'MongoDB 是一個 Nosql 資料庫',
by: '菜鳥教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
接着我們通過 update() 方法來更新标題(title):
>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
##隻會修改第一條滿足條件的查詢值
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) # 輸出資訊
> db.col.find().pretty()
{
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "菜鳥教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
>
17、save方法(以下執行個體中我們替換了 _id 為 56064f89ade2f21f36b03136 的文檔資料:)
>db.col.save({
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
})
18、remove() 方法的基本文法格式如下所示:
db.collection.remove(
<query>,
<justOne>
)
#如果你的 MongoDB 是 2.6 版本以後的,文法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
參數說明:
- query :(可選)删除的文檔的條件。
- justOne : (可選)如果設為 true 或 1,則隻删除一個文檔。
- writeConcern :(可選)抛出異常的級别。
執行個體
以下文檔我們執行插入操作
>db.col.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一個 Nosql 資料庫',
by: '菜鳥教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
使用 find() 函數查詢資料:
> db.col.find()
{ "_id" : ObjectId("56066169ade2f21f36b03137"), "title" : "MongoDB 教程", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "菜鳥教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
{ "_id" : ObjectId("5606616dade2f21f36b03138"), "title" : "MongoDB 教程", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "菜鳥教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
>db.col.remove({'title':'MongoDB 教程'})##預設删除所有
WriteResult({ "nRemoved" : 2 }) # 删除了兩條資料
>db.col.find()
…… # 沒有資料
#如果你隻想删除第一條找到的記錄可以設定 justOne 為 1
>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)删除一條
19:MongoDB OR 條件語句使用了關鍵字$or,文法格式如下:
>db.col.find({$or:[{"by":"菜鳥教程"},{"title": "MongoDB 教程"}]}).pretty()
{
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB 教程",
"description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "菜鳥教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
>
AND 和 OR 聯合使用
以下執行個體示範了 AND 和 OR 聯合使用,類似正常 SQL 語句為:'where likes>50 AND (by = '菜鳥教程' OR title = 'MongoDB 教程')'
>db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鳥教程"},{"title": "MongoDB 教程"}]}).pretty()
{
"_id" : ObjectId("56063f17ade2f21f36b03133"),
"title" : "MongoDB 教程",
"description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "菜鳥教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
例如:
查詢user集合中 uname="張三" and age=21 的所有文檔
> db.user.find({"uname":"zhangsan","age":21}).pretty()
查詢user集合中 uname=zhangsan 或者 uname="張三"的資料
>db.user.find({$or:[{"uname":"zhangsan"},{"uname": "張三"}]}).pretty()
20、雜七亂八
eg: