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;
}

浙公网安备 33010602011771号