1. 如何啟動MongoDB的WEB界面
讓我們構建一個簡單的EmployeeManager Web服務,我們將使用它來演示與MongoDB連接的HATEOAS。為了引導我們的應用程序,我們將使用Spring Initializr。我們將使用Spring HATEOAS和Spring Data MongoDB作為依賴項。你應該看到類似下圖2所示的內容。圖2 :引導應用程序配置完成後,下載zip並將其作為Maven項目導入你喜歡的IDE中。首先,讓我們配置application.properties。要獲得MongoDB連接,spring.data.mongodb.host=//Mongoserverhost
spring.data.mongodb.port=//Mongoserverport
spring.data.mongodb.username=//Loginuser
spring.data.mongodb.password=//Password
spring.data.mongodb.database=//Databasename
一般來說,如果所有內容都是全新安裝的,並且你沒有更改或修改任何Mongo屬性,則只需提供一個資料庫名稱(已經通過GUI創建了一個資料庫名稱)。
spring.data.mongodb.database=EmployeeManager
另外,為了啟動Mongo實例,作者創建了一個.bat,它指向安裝文件夾和數據文件夾。它是這樣的:"C:ProgramFilesMongoDBServer3.6inmongod"--dbpathD:-datadb
現在,我們來快速創建模型。這里有兩個模型,員工模型和部門模型。檢查它們,確保有沒有參數、getter、setter、equals方法和hashCode生成的構造函數。(不用擔心,所有代碼都在GitHub上,你可以稍後查看它:https://github.com/theFaustus/EmployeeManager。)
publicclassEmployee{
privateStringemployeeId;
privateStringfirstName;
privateStringlastName;
privateintage;
}
publicclassDepartment{
privateStringdepartment;
privateStringname;
privateStringdescription;
privateList<Employee>employees;
}
現在我們已經完成了模型的製作,讓我們來創建存儲庫,以便來測試持久性。存儲庫如下所示:
extendsMongoRepository<Employee,String>{
}
extendsMongoRepository<Department,String>{
}
如上所示,這里沒有方法,因為大家都知道Spring Data中的中心介面被命名為Repository,在其之上是CrudRepository,它提供了處理模型的基本操作。在CrudRepository之上,我們有PagingAndSortingRepository,它為我們提供了一些擴展功能,來簡化分頁和排序訪問。在我們的案例中,最重要的是MongoRepository,它用於嚴格處理我們的Mongo實例。因此,對於我們的案例來說,除了那些現成的方法外,我們不需要任何其他方法,但是僅出於學習目的,作者在這里要提到的是你可以添加其他查詢方法的兩種方法:
@Query("{'firstname':?0}")
List<Employee>findByTheEmployeesFirstname(Stringfirstname);
@(,){
return(args)->{
employeeRepository.deleteAll();
departmentRepository.deleteAll();
Employeee=employeeRepository.save(newEmployee("Ion","Pascari",23));
departmentRepository.save(newDepartment("ServiceDepartment","ServiceRocks!",Arrays.asList(e)));
for(Departmentd:departmentRepository.findAll()){
LOGGER.info("Department:"+d);
}
};
}
{
EmployeesaveEmployee(Employeee);
EmployeefindByEmployeeId(StringemployeeId);
voiddeleteByEmployeeId(StringemployeeId);
voipdateEmployee(Employeee);
booleanemployeeExists(Employeee);
List<Employee>findAll();
voiddeleteAll();
}
@{
@Autowired
private;
@Override
publicEmployeesaveEmployee(Employeee){
returnemployeeRepository.save(e);
}
@Override
(StringemployeeId){
returnemployeeRepository.findOne(employeeId);
}
@Override
publicvoiddeleteByEmployeeId(StringemployeeId){
employeeRepository.delete(employeeId);
}
@Override
publicvoipdateEmployee(Employeee){
employeeRepository.save(e);
}
@Override
publicbooleanemployeeExists(Employeee){
returnemployeeRepository.exists(Example.of(e));
}
@Override
publicList<Employee>findAll(){
returnemployeeRepository.findAll();
}
@Override
publicvoiddeleteAll(){
employeeRepository.deleteAll();
}
}
@RestController
@RequestMapping("/employees")
publicclassEmployeeController{
@Autowired
;
@RequestMapping(value="/list/",method=RequestMethod.GET)
publicHttpEntity<List<Employee>>getAllEmployees(){
List<Employee>employees=employeeService.findAll();
if(employees.isEmpty()){
returnnewResponseEntity<>(HttpStatus.NO_CONTENT);
}else{
returnnewResponseEntity<>(employees,HttpStatus.OK);
}
}
@RequestMapping(value="/employee/{id}",method=RequestMethod.GET)
publicHttpEntity<Employee>getEmployeeById(@PathVariable("id")StringemployeeId){
EmployeebyEmployeeId=employeeService.findByEmployeeId(employeeId);
if(byEmployeeId==null){
returnnewResponseEntity<>(HttpStatus.NOT_FOUND);
}else{
returnnewResponseEntity<>(byEmployeeId,HttpStatus.OK);
}
}
@RequestMapping(value="/employee/",method=RequestMethod.POST)
publicHttpEntity<?>saveEmployee(@RequestBodyEmployeee){
if(employeeService.employeeExists(e)){
returnnewResponseEntity<>(HttpStatus.CONFLICT);
}else{
Employeeemployee=employeeService.saveEmployee(e);
URIlocation=ServletUriComponentsBuilder.fromCurrentRequest().path("/employees/employee/{id}")
.buildAndExpand(employee.getEmployeeId()).toUri();
HttpHeadershttpHeaders=newHttpHeaders();
httpHeaders.setLocation(location);
returnnewResponseEntity<>(httpHeaders,HttpStatus.CREATED);
}
}
@RequestMapping(value="/employee/{id}",method=RequestMethod.PUT)
publicHttpEntity<?>updateEmployee(@PathVariable("id")Stringid,@RequestBodyEmployeee){
EmployeebyEmployeeId=employeeService.findByEmployeeId(id);
if(byEmployeeId==null){
returnnewResponseEntity<>(HttpStatus.NOT_FOUND);
}else{
byEmployeeId.setAge(e.getAge());
byEmployeeId.setFirstName(e.getFirstName());
byEmployeeId.setLastName(e.getLastName());
employeeService.updateEmployee(byEmployeeId);
returnnewResponseEntity<>(employeeService,HttpStatus.OK);
}
}
@RequestMapping(value="/employee/{id}",method=RequestMethod.DELETE)
publicResponseEntity<?>deleteEmployee(@PathVariable("id")StringemployeeId){
employeeService.deleteByEmployeeId(employeeId);
returnnewResponseEntity<>(HttpStatus.NO_CONTENT);
}
@RequestMapping(value="/employee/",method=RequestMethod.DELETE)
publicResponseEntity<?>deleteAll(){
employeeService.deleteAll();
returnnewResponseEntity<>(HttpStatus.NO_CONTENT);
}
}
2. 如何在window下使用mongodb
1、下載MongoDB資料庫;
2、將安裝文件解壓到C盤(注意:安裝路徑中不能出現空格),配置「環境變數」,將 %MONGODB_HOME%in 添加到「Path」中;
3、進入DOS窗口,設置數據保存目錄(與埠)和日誌輸出目錄。
DOS命令:
mongod --port --dbpath --logpath --logappend --directoryperdb
參數說明:
--port 表示資料庫埠,默認27017;
--dbpath 表示數據文件存儲路徑,一般設置為%MONGODB_HOME%data;
--logpath 表示日誌文件存儲路徑,一般設置為%MONGODB_HOME%logsmongodb.log;
--logappend 表示日誌追加,默認是覆蓋;
--directoryperdb 表示每個db一個目錄;
4、完成以上設置,MongoDB已經啟動,新開啟DOS窗口,執行「mongo.exe」,出現「MongoDB shell version: 1.8.1」表示安裝成功了。
5、目前是以無許可權限制的方式啟動的,你可以做任何操作。那麼我們先切換到admin下,創建一個root用戶吧。執行命令:
"use admin" -> "db.addUser("root","root")" -> "db.auth("root","root")",如下圖所示:
6、把MongoDB注冊為Windows Service,讓它開機自動啟動;執行命令:
mongod --bind_ip 127.0.0.1 --logpath %MONGODB_HOME%logsmongodb.log --logappend --dbpath %MONGODB_HOME%data --directoryperdb --auth --install
注意:
a.必須切換到bin目錄下執行該條指令。
b.必須添加--auth用戶許可權才會生效。
c.除了「--auth」和「--install」兩個參數,別的參數要跟你設置用戶時啟動服務的參數一致,尤其是「--directoryperdb」。
第一次配置完成後,一定要重啟才會有效果 重啟mongo客戶端,不輸入-u-p可以直接進入,但是不具有任何許可權。正確的訪問方式為:mongo 資料庫名 -u 用戶名 -p。另外設置用戶
7、服務安裝成功後的界面:
8、如果安裝失敗:
刪除MongoDB服務,執行命令:
sc delete MongoDB
啟動MongoDB服務,執行命令:
net start "MongoDB"
9、在cmd下可有兩種方法打開,net和sc,net用於打開沒有被禁用的服務,語法是:
啟動:net/sc start 服務名
停止:net/sc stop 服務名
10、另外,sc可用於打開被禁用的服務,語法是:
sc config 服務名 start= demand //手動
sc condig 服務名 start= auto //自動
sc config 服務名 start= disabled //禁用
注意:以上三個命令「=」號後面必須有一個空格
Mongo(也譯芒果)名字來自humongous,意思是巨大無比的,極大的。它是一個高性能,開源,無模式的文檔型NOSQL資料庫。Mongo使用C++開發,提供了以下功能:
面向集合的存儲:適合存儲對象及JSON形式的數據。
動態查詢:Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
完整的索引支持:包括文檔內嵌對象及數組。Mongo的查詢優化器會分析查詢表達式,並生成一個高效的查詢計劃。
查詢監視:Mongo包含一個監視工具用於分析資料庫操作的性能。
復制及自動故障轉移:Mongo資料庫支持伺服器之間的數據復制,支持主-從模式及伺服器之間的相互復制。復制的主要目標是提供冗餘及自動故障轉移。
高效的傳統存儲方式:支持二進制數據及大型對象(如照片或圖片)。
自動分片以支持雲級別的伸縮性:自動分片功能支持水平的資料庫集群,可動態添加額外的機器。
MongoDB服務端可運行在linux、Windows或OS X平台,支持32位和64位應用,在32位模式運行時支持的最大文件尺寸為2GB。
常用啟動參數:
–dbpath 指定特定存儲目錄啟動,若目錄不存在則創建。默認目錄為/data/db。例:./mongod –dbpath /var/data/mongo
–port 指定埠啟動。默認埠為27017。例:./mongod –port 12345
windows 下使用方法
直接啟動:
$ bin/mongod.exe #啟動伺服器
$ bin/mongo.exe #啟動客戶端連接
注冊為服務,這樣以後開機就可以自動啟動
$ bin/mongod.exe --logpath c:\data\log.log --logappend --dbpath "c:\data\db" --install #主要是install 參數,要新建c:\data\log.log文件和c:\data\db目錄
刪除服務
$ bin/mongod.exe --remove
當注冊為服務時可以Win+R打開運行,輸入services.msc來查看服務狀態
常見錯誤
1、monge.exe客戶端連接時報錯:couldn』t connect to server 127.0.0.1 shell/mongo.js:79
這是因為monged.exe啟動失敗
2、多次嘗試後monged.exe啟動失敗,始終沒找到原因
這個錯誤困擾了我一段時間,後來發現c:\data\db下有個mongod.lock鎖文件,把這個文件刪除後,重新啟動伺服器就可以了。
服務啟動報錯: error2: system can not find the file specified.
solution:
安裝服務的時候, 你需要用 mongod.exe的 full path
C:\mongodb-win32-i386-1.8.2\bin\mongod.exe --logpath c:\mongo
db\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --install
to remove service
C:\mongodb-win32-i386-1.8.2\bin\mongod.exe --logpath c:\mongo
db\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --remove
and re open windows service windows, the original service will gone.
3. linux怎麼連接mongodb資料庫
想在shell中連接資料庫,首先要在連接數據的機器上安裝mongodb的客戶端才可以。客戶端的安裝在這里不再重復,自己網路或者google一下吧。連接mongodb的命令如下:/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888
這個是我的資料庫配置,沒有設置用戶名密碼。所以直接通過該命令就可以連接。
連結後會有一個默認連接的資料庫。
mongodb常用命令:
查看資料庫命令:
show dbs;
查看集合命令:
show collections;
切換資料庫:
use databaseName;
查詢數據:
db.集合名.find()
插入數據:
db.集合名.insert({name:'test',age:1});
刪除:
db.test.remove();
sql="db.test.insert({name:'test',age:1});"//定義執行的sqlecho "$sql"|/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888/test --shell
注意,echo命令中的格式必須這樣寫,管線命令後面的是是資料庫安裝地址 然後是ip:埠號,斜線後是資料庫名稱,--shell表示通過shell交互!
4. Mongodb 啟動命令(第一次寫博客,是這樣的么
首先檢查你啟動資料庫命令的dbpath這個路徑的文件夾是必需存在的,否則就會報錯,其它的原因需要看錯誤日誌分析
mongodb沒啟動。先在shell里輸入mongod啟動mongodb
然後在輸入mongo啟動管理台進行管理
5. window7怎麼啟動mongodb服務
你好,
方法/步驟
1、登陸mongodb官網點擊右側的下載
2、選擇windows平台,如圖點擊需要的zip文件下載(筆者這里主要講訴zip文件的安裝)
legacy版本可以用於舊版本系統下安裝,這里不推薦。
3、將zip文件解壓放到盤符的根目錄(如C:或D:),為了方便建議文件夾命名盡量簡短如(d:\mongodb)
4、創建資料庫文件的存放位置,比如d:/mongodb/data/db。啟動mongodb服務之前需要必須創建資料庫文件的存放文件夾,否則命令不會自動創建,而且不能啟動成功。
5、打開cmd(windows鍵+r輸入cmd)命令行,進入D:\mongodb\bin目錄(如圖先輸入d:進入d盤然後輸入cd d:\mongodb\bin),
輸入如下的命令啟動mongodb服務:
D:/mongodb/bin>mongod --dbpath D:\mongodb\data\db
6、mongodb默認連接埠27017,如果出現如圖的情況,可以打開http://localhost:27017查看(筆者這里是chrome),發現如圖則表示連接成功,如果不成功,可以查看埠是否被佔用。
7、其實可以將MongoDB設置成Windows服務,這個操作就是為了方便,每次開機MongoDB就自動啟動了。
如圖在d:\mongodb\data下新建文件夾log(存放日誌文件)並且新建文件mongodb.log
在d:\mongodb新建文件mongo.config
8、用記事本打開mongo.config輸入:
dbpath=D:\mongodb\data\db
logpath=D:\mongodb\data\log\mongo.log
(圖片的logpath有錯誤)
用管理員身份打開cmd命令行,進入D:\mongodb\bin目錄,輸入如下的命令:
D:\mongodb\bin>mongod --config D:\mongodb\mongo.config
9、有人提醒改為如下:
mongod --config D:\mongodb\mongo.config --install --serviceName "MongoDB"
如圖結果存放在日誌文件中,查看日誌發現已經成功。如果失敗有可能沒有使用管理員身份,遭到拒絕訪問。
10、打開cmd輸入services.msc查看服務可以看到MongoDB服務,點擊可以啟動。
6. 如何安裝,配置MongoDB
1
下載mongodb的windows版本,有32位和64位版本,根據系統情況下載
2
創建資料庫文件的存放位置,比如D:/mongodb/data/db。啟動mongodb服務之前需要必須創建資料庫文件的存放文件夾,否則命令不會自動創建,而且不能啟動成功。默認文件夾路徑為c:/data/db.使用系統默認文件夾路徑時,啟動服務無需加--dbpath 參數說明,但文件夾還要手工創建
3
打開cmd命令行,進入D:/mongodb/bin目錄,輸入如下的命令啟動mongodb服務:
D:/mongodb/bin>mongod.exe --dbpath D:/mongodb/data/db
4
再打開一個cmd輸入:D:/mongodb/bin>mongo 127.0.0.1/admin,或者雙擊mongo.exe,即可進行mongodb的客戶端命令操作了:
7. linux進入mongodb怎麼鏈接mongodb
進入到你的MongoDB安裝目錄,啟動的命令是:./mongod,客戶端連接的命令是:./mongo就可以了,希望是你想要的答案,也可以關注PHP程序員,雷雪松的個人博客,有很多MongoDB的介紹。
8. mongodb資料庫怎麼使用
MongoDB是由10gen團隊開發的基於分布式存儲的開源資料庫系統,使用C++編寫。MongoDB作為一個文檔型資料庫,其中數據以鍵值對的方式來存儲。
下面我們來看下MogoDB的基本使用。
1、連接MongoDB資料庫
使用如下命令來連接MongoDB資料庫
mongo
圖5 刪除資料庫
9. 怎麼連接mongodb的資料庫
MongoDB是由10gen團隊開發的基於分布式存儲的開源資料庫系統,使用C++編寫。MongoDB作為一個文檔型資料庫,其中數據以鍵值對的方式來存儲。
下面我們來看下MogoDB的基本使用方法。
1、連接MongoDB資料庫
使用如下命令來連接MongoDB資料庫
mongo
刪除資料庫
10. 如何在linux上進入mongodb
按照常理,把如下命令 /usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb 放在/etc/rc.local文件中就可以實現開機自啟動了,第一次重啟機器發現mongodb順利啟動了,再次重啟機器後,通過ps...