MongoDB Compass Community
下載
要從具有圖形使用者介面的MongoDB開始,MongoDB Compass Community是最好的方法之一。MongoDB Compass Community由MongoDB開發人員開發,這意味著更高的可靠性和相容性。它為MongoDB提供GUI mongodb工具,以探索資料庫互動;具有完整的CRUD功能並提供可視方式。藉助內建模式視覺化,使用者可以分析文件並顯示豐富的結構。為了監控伺服器的負載,它提供了資料庫操作的實時統計資訊。就像MongoDB一樣,Compass也有兩個版本,一個是Enterprise(付費),社群可以免費使用。適用於Linux,Mac或Windows。進入官網的下載頁面,下載相應的版本。
下載連結:www.mongodb.com/download-ce…
安裝
1)開啟下載好的.msi安裝包,如圖所示,點選next進行安裝。
2)選擇安裝磁碟位置。
3)安裝完成。
4)開啟安裝目錄,執行視覺化工具。
5)開啟伺服器的mongodb配置檔案,修改繫結ip地址為0.0.0.0。
6)使用MongoDB Compass Community遠端連線,填入相應的ip與port。最命令:vi /etc/mongod.conf
後點選連線。
使用
介紹
連線後的介面如圖所示,列出來的為現存的資料庫,預設已有admin,config與local資料庫。
點選對應的資料庫可以檢視該資料庫資訊,列出該資料庫所有的集合。下圖所示為lamarsan資料庫中的集合------lamarsan。該介面顯示了lamarsan集合的平均文件大小,總大小,索引數量以及索引大小等資訊。
點選對應的集合可以檢視該集合資訊,如圖所示,該集合內只有一個文件。同時,在該頁面可以進行文件的增刪改查。
MongoDB概念
下面列出了mongodb與mysql之間的關係比較。
SQL術語/概念 | MongoDB術語/概念 | 解釋說明 |
---|---|---|
database | database | 資料庫 |
table | collection | 資料庫表/集合 |
row | document | 資料記錄行/文件 |
column | field | 資料欄位/域 |
index | index | 索引 |
table joins | 表連線,mongodb不支援 | |
primary key | primary key | 主鍵,MongoDB自動將_id欄位設定為主鍵 |
新建資料庫
進入首頁,點選CREAWTE DATABASE。填入相應的資料庫資訊和集合資訊即可,Capped Collection為固定大小的集合。
刪除資料庫
點選資料庫名後的垃圾圖示可進行刪除,刪除時輸入資料庫名字,即lamar。
新建集合
進入資料庫頁面,點選集合名字右邊的+號或者CREATE COLLECTION,填入相應的集合資訊即可,Capped Collection為固定大小的集合。
刪除集合
點選集合名後的垃圾圖示可進行刪除,刪除時輸入集合名字,即lamar。
新增文件
進入集合頁面,點選INSERT DOCUMENT,像JSON一樣輸入鍵值對,使用回車換行,點選INSERT即可插入。
刪除文件
進入集合頁面,點選文件右邊的垃圾桶標誌,即可刪除。
修改文件
進入集合頁面,點選文件右邊的筆標誌,即可進行對文件的修改。
加號為在當前域後加入新域,×為刪除當前域。
查詢文件
進入集合頁面,在FIELTER右邊的空框框中輸入查詢條件:{title:\"MongoDB\",num:{\$lte:100}}
。
意思是查詢title為"MongoDB",且num小於等於100的文件。點選FIND即可查詢。
除了上述基本功能外,輸入查詢語句後,點選右邊的...可以獲得更多功能,如圖所示。
1)查詢語句轉換圖,可以將查詢語句轉換為java,python等語言,包括需要匯入的包,並提供程式碼複製功能。
2)查詢的歷史記錄。
Java操作mongodb
新增依賴
<dependency>
<artifactId>baseservice-common-mongodb</artifactId>
<groupId>com.ccw.baseservices</groupId>
<version>1.0.2-RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
複製程式碼
新增配置
需要先建立mongodb的使用者
spring.data.mongodb.host=ip
spring.data.mongodb.port=27017
spring.data.mongodb.username=root
spring.data.mongodb.password=******
spring.data.mongodb.database=lamarsan
複製程式碼
編寫配置類
package com.lamarsan.provider.config;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import java.util.ArrayList;
import java.util.List;
/**
* className: MongDBConf
* description: TODO
*
* @author hasee
* @version 1.0
* @date 2019/7/17 17:37
*/
@Configuration
@PropertySource(value = "classpath:application.properties") //配置檔案
@EnableMongoRepositories(basePackages = "com.lamarsan.provider.mongo.dao") //dao層
public class MongDBConf {
@Value("${spring.data.mongodb.username}")
private String username;
@Value("${spring.data.mongodb.password}")
private String password;
@Value("${spring.data.mongodb.database}")
private String database;
@Value("${spring.data.mongodb.host}")
private String host;
@Value("${spring.data.mongodb.port}")
private String port;
@Bean
public MongoClient mongoClient(){
String username = this.username;
String password = this.password;
String database = this.database;
String host = this.host;
Integer port = Integer.valueOf(this.port);
ServerAddress serverAddress = new ServerAddress(host,port);
MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray());
List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>();
mongoCredentialList.add(mongoCredential);
return new MongoClient(serverAddress,mongoCredentialList);
}
@Bean
public MongoDbFactory mongoDbFactory(){
String database = this.database;
return new SimpleMongoDbFactory(mongoClient(),database);
}
@Bean
public MongoTemplate mongoTemplate(){
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory());
return mongoTemplate;
}
}
複製程式碼
編寫實體類
欄位加上@Field註釋,文件使用@Document註釋:
package com.lamarsan.provider.mongo;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import java.io.Serializable;
/**
* className: SongRecord
* description: TODO
*
* @author hasee
* @version 1.0
* @date 2019/7/17 16:59
*/
@Data
@Document(collection = "student_b_song_record")
public class SongRecord implements Serializable {
//使用者ID
@Field("user_id")
private String userId;
//歌曲ID
@Field("song_id")
private String songId;
//音訊key
@Field("audio_key")
private String audioKey;
}
複製程式碼
編寫dao層
@Repository
public interface SongRepository extends MongoRepository<SongRecord, String> {
}
複製程式碼
編寫介面類
public interface SongService {
List<SongRecord> findAllSong();
}
複製程式碼
實現介面
@Service
public class SongServiceImpl implements SongService {
@Autowired
SongRepository songRepository;
public List<SongRecord> findAllSong() {
return songRepository.findAll();
}
}
複製程式碼
呼叫介面
@RestController
@CrossOrigin
@RequestMapping("/song")
public class SongController {
@Reference(lazy = true)
SongService songService;
@PostMapping("/allSong")
@ResponseBody
public List<SongRecord> getAllPerson(){
System.out.println(songService);
return songService.findAllSong();
}
}
複製程式碼