MongoDB

最近一直在做数据接入相关的工作,刚好用到了MongoDb,下面就简单介绍下MongoDB连接及查询语法。

MongoDB

MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。

基本概念

在MongoDB中基本的概念是数据库、集合、文档,如下表所示(参考链接)。

SQL术语 MongoDB术语 说明
database database 数据库
table collection 数据表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins   表链接,MongoDB不支持
primary key primary key 主键,MongoDB自动将

具体介绍参考链接

Java Demo

mvn 依赖

<!--mongoDb driver -->
<dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongo-java-driver</artifactId>
      <version>3.8.0</version>
</dependency> 

jdbc连接 Demo

 1 public class MongoDBDemo{
 2    private MongoClient client;
 3    private MongodbConnection connection;
 4    private String uriFormat = "mongodb://%s:%s@%s/%s";
 5 
 6    private void initClient() {
 7         if (CollectionUtils.isEmpty(connection.getAddress())) {
 8             return;
 9         }
10 
11         try {
12             String seedStr = connection.getAddress().stream().collect(Collectors.joining(","));
13             String uriStr = String.format(uriFormat, connection.getUsername(), connection.getPassword(), seedStr,
14                     connection.getDatabase());
15             if (StringUtil.isNotEmpty(connection.getReplSetName())) {
16                 uriStr = uriStr + "?replicaSet=" + connection.getReplSetName();
17             } // end if
18                 // 另一种通过URI初始化
19                 // mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
20             MongoClientURI connectionUri = new MongoClientURI(uriStr);
21             this.client = new MongoClient(connectionUri);
22         } catch (Exception e) {
23             log.error("mongodb connection fail,throws exception", e);
24             throw new BizRuntimeException(ErrorCode.getError(SqlExecuteError.MONGODB_CONNECTION_TIMEOUT));
25         } // end try-carch
26 
27     }
28 }

 

MongoDB 查询语法

查询语法详细参考 官网

常用查询语法Java Demo

1 获取Table


public MongoCollection<Document> getTable(String tableName) {


MongoDatabase db = client.getDatabase(connection.getDatabase());


return db.getCollection(tableName);


}

 

 

2 First Doc

一般用于预览MongoDB某个DB中的Doc信息。


public Document getFirstDoc(String tableName) throws Exception {


MongoDatabase db = client.getDatabase(connection.getDatabase());


MongoCollection<Document> table = db.getCollection(tableName);


MongoCursor<Document> iter = table.find().iterator();


Document document = null;


 


while (iter.hasNext()) {


document = iter.next();


document.remove(CommonConstants.MONGODB_ID);


break;


} // end while


return document;


}

 

 

  

 

posted @ 2018-11-29 17:31  梨小落是个小疯子  阅读(330)  评论(0)    收藏  举报