MongoDB圖形化工具的使用與java操作

lamar醬發表於2019-07-20

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…

MongoDB圖形化工具的使用與java操作

安裝

1)開啟下載好的.msi安裝包,如圖所示,點選next進行安裝。

MongoDB圖形化工具的使用與java操作

2)選擇安裝磁碟位置。

MongoDB圖形化工具的使用與java操作

3)安裝完成。

MongoDB圖形化工具的使用與java操作

4)開啟安裝目錄,執行視覺化工具。

MongoDB圖形化工具的使用與java操作

5)開啟伺服器的mongodb配置檔案,修改繫結ip地址為0.0.0.0。

命令:vi /etc/mongod.conf

MongoDB圖形化工具的使用與java操作
6)使用MongoDB Compass Community遠端連線,填入相應的ip與port。最

後點選連線。

MongoDB圖形化工具的使用與java操作

使用

介紹

連線後的介面如圖所示,列出來的為現存的資料庫,預設已有admin,config與local資料庫。

MongoDB圖形化工具的使用與java操作

點選對應的資料庫可以檢視該資料庫資訊,列出該資料庫所有的集合。下圖所示為lamarsan資料庫中的集合------lamarsan。該介面顯示了lamarsan集合的平均文件大小,總大小,索引數量以及索引大小等資訊。

MongoDB圖形化工具的使用與java操作

點選對應的集合可以檢視該集合資訊,如圖所示,該集合內只有一個文件。同時,在該頁面可以進行文件的增刪改查。

MongoDB圖形化工具的使用與java操作

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為固定大小的集合。

MongoDB圖形化工具的使用與java操作

刪除資料庫

點選資料庫名後的垃圾圖示可進行刪除,刪除時輸入資料庫名字,即lamar。

MongoDB圖形化工具的使用與java操作

新建集合

進入資料庫頁面,點選集合名字右邊的+號或者CREATE COLLECTION,填入相應的集合資訊即可,Capped Collection為固定大小的集合。

MongoDB圖形化工具的使用與java操作

刪除集合

點選集合名後的垃圾圖示可進行刪除,刪除時輸入集合名字,即lamar。

MongoDB圖形化工具的使用與java操作

新增文件

進入集合頁面,點選INSERT DOCUMENT,像JSON一樣輸入鍵值對,使用回車換行,點選INSERT即可插入。

MongoDB圖形化工具的使用與java操作

刪除文件

進入集合頁面,點選文件右邊的垃圾桶標誌,即可刪除。

MongoDB圖形化工具的使用與java操作

修改文件

進入集合頁面,點選文件右邊的筆標誌,即可進行對文件的修改。

MongoDB圖形化工具的使用與java操作

加號為在當前域後加入新域,×為刪除當前域。

MongoDB圖形化工具的使用與java操作

查詢文件

進入集合頁面,在FIELTER右邊的空框框中輸入查詢條件:{title:\"MongoDB\",num:{\$lte:100}}
意思是查詢title為"MongoDB",且num小於等於100的文件。點選FIND即可查詢。

MongoDB圖形化工具的使用與java操作

除了上述基本功能外,輸入查詢語句後,點選右邊的...可以獲得更多功能,如圖所示。

1)查詢語句轉換圖,可以將查詢語句轉換為java,python等語言,包括需要匯入的包,並提供程式碼複製功能。

2)查詢的歷史記錄。

MongoDB圖形化工具的使用與java操作

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();
    }
}
複製程式碼

返回資料:

MongoDB圖形化工具的使用與java操作

使用圖形化工具檢視是否正確:

MongoDB圖形化工具的使用與java操作

相關文章