[mongodb]java操作mongodb

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:
使用mongoDB需要导入以下类,当然不是全部需要,用到的类就导入。  
import com.mongodb.Mongo;  
import com.mongodb.DB;  
import com.mongodb.DBCollection;  
import com.mongodb.BasicDBObject;  
import com.mongodb.DBObject;  
import com.mongodb.DBCursor;  
import com.mongodb.ObjectId;  

类转换  
当把一个类对象存到mongoDB后,从mongoDB取出来时使用setObjectClass()将其转换回原来的类。  
public class Tweet implements DBObject {  
    /* ... */  
}  
Tweet myTweet = new Tweet();  
myTweet.put("user", "bruce");  
myTweet.put("message", "fun");  
myTweet.put("date", new Date());  
collection.insert(myTweet);  
//转换  
collection.setObjectClass(Tweet);  
Tweet myTweet = (Tweet)collection.findOne();  

默认ID  
当保存的对象没有设置ID时,mongoDB会默认给该条记录设置一个ID("_id")。  
当然你也可以设置自己指定的ID,如:(在mongoDB中执行用db.users.save({_id:1,name:'bruce'});)  
BasicDBObject bo = new BasicDBObject();  
bo.put('_id', 1);  
bo.put('name', 'bruce');  
collection.insert(bo);  

权限  
判断是否有mongoDB的访问权限,有就返回true,否则返回false。  
boolean auth = db.authenticate(myUserName, myPassword);  

查看mongoDB数据库列表  
Mongo m = new Mongo();  
for (String s : m.getDatabaseNames()) {  
System.out.println(s);  
}  


查看当前库下所有的表名,等于在mongoDB中执行show tables;  
Set<String> colls = db.getCollectionNames();  
for (String s : colls) {  
System.out.println(s);  
}  

查看一个表的索引  
List<DBObject> list = coll.getIndexInfo();  
for (DBObject o : list) {  
System.out.println(o);  
}  

删除一个数据库  
Mongo m = new Mongo();  
m.dropDatabase("myDatabaseName");  

建立mongoDB的链接  
Mongo m = new Mongo("localhost", 27017);  
DB db = m.getDB("myDatabaseName"); //相当于库名  
DBCollection coll = db.getCollection("myUsersTable");//相当于表名  

#查询数据  
查询第一条记录  
DBObject firstDoc = coll.findOne();  
findOne()返回一个记录,而find()返回的是DBCursor游标对象。  

查询全部数据  
DBCursor cur = coll.find();  
while(cur.hasNext()) {  
System.out.println(cur.next());  
}  

查询记录数量  
coll.find().count();  
coll.find(new BasicDBObject("age", 26)).count();  

设置条件查询  
BasicDBObject condition = new BasicDBObject();  
condition.put("name", "bruce");  
condition.put("age", 26);  
coll.find(condition);  

查询部分数据块  
DBCursor cursor = coll.find().skip(0).limit(10);  
while(cursor.hasNext()) {  
System.out.println(cursor.next());  
}  

比较查询(age > 50)  
BasicDBObject condition = new BasicDBObject();  
condition.put("age", new BasicDBObject("$gt", 50));  
coll.find(condition);  
比较符  
"$gt": 大于  
"$gte":大于等于  
"$lt": 小于  
"$lte":小于等于  
"$in": 包含  
//以下条件查询20<age<=30  
condition.put("age", new BasicDBObject("$gt", 20).append("$lte", 30));  

#插入数据  
批量插入  
List datas = new ArrayList();  
for (int i=0; i < 100; i++) {  
BasicDBObject bo = new BasicDBObject();  
bo.put("name", "bruce");  
bo.append("age", i);  
datas.add(bo);  
}  
coll.insert(datas);  

正则表达式  
查询所有名字匹配 /joh?n/i 的记录  
Pattern pattern = Pattern.compile("joh?n", CASE_INSENSITIVE);  
BasicDBObject query = new BasicDBObject("name", pattern);  
DBCursor cursor = coll.find(query);
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
1月前
|
NoSQL JavaScript 前端开发
Java访问MongoDB
Java访问MongoDB
43 21
|
1月前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过MongoDB Atlas Data Lake或Apache Drill,可以在Java中使用SQL语法查询MongoDB数据。这两种方法都需要适当的配置和依赖库的支持。希望本文提供的示例和说明能够帮助开发者实现这一目标。
49 17
|
2月前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
122 9
|
4月前
|
NoSQL Java 数据库连接
MongoDB Java
10月更文挑战第18天
34 3
|
4月前
|
存储 JSON NoSQL
Java 中MongoDB的使用
Java 中MongoDB的使用
28 2
|
4月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
14天前
|
存储 NoSQL MongoDB
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
2月前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
89 15
|
2月前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
3月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。

热门文章

最新文章