MongoDB(3)--Java 操作 MongoDB 的 API
引入mongoDb 依赖
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.8.1</version>
</dependency>
类比JDBC写法,相对比较偏底层
package com.lf; import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.WriteResult; public class MongoCRUDTest { public static void main(String[] args) { Mongo mongo = new Mongo("192.168.25.128",27017); DB db = new DB(mongo,"lf-demo"); DBCollection collection = db.getCollection("member");
//类比JDBC
DBObject dbObject = new BasicDBObject();
dbObject.put("name", "lf");
dbObject.put("age", "18");
dbObject.put("addr", "anhui hefei"); WriteResult insert = collection.insert(dbObject);
System.out.println(insert+"---------"); DBCursor dbCursor = collection.find();
for(Object obj : dbCursor){
System.out.println(obj);
}
}
}
官方快速入门demo
package com.lf; import java.util.Arrays; import org.bson.Document; import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase; public class MongoTest {
public static void main(String[] args) { MongoClient mongoClient = MongoClients.create("mongodb://192.168.25.128:27017");
MongoDatabase mongoDatabase = mongoClient.getDatabase("lf-demo");
MongoCollection<Document> collection = mongoDatabase.getCollection("lf-member");
Document document = new Document("name", "lf").append("age", "18")
.append("address", Arrays.asList("anhui", "hefei"))
.append("position", new Document("x", "125").append("y", "172"));
collection.insertOne(document); }
}
mongoDB框架:封装了mongoDB基本的操作
Morphia mongoDb的第一个orm框架(spring 的封装 mongoDBTemplate)
引入依赖
<dependency>
<groupId>org.mongodb.morphia</groupId>
<artifactId>morphia</artifactId>
<version>1.3.2</version>
</dependency>
创建MorphiaMember实体类
package com.lf.morphia; import org.bson.types.ObjectId;
import org.mongodb.morphia.annotations.Id; public class MorphiaMember { @Id
private ObjectId id; private String name;
private int age;
private String addr; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
} }
test
package com.lf.morphia; import org.mongodb.morphia.Datastore;
import org.mongodb.morphia.Key;
import org.mongodb.morphia.Morphia; import com.mongodb.MongoClient; public class MorphiaTest { public static void main(String[] args) { final Morphia morphia = new Morphia(); Datastore ds = morphia.createDatastore(new MongoClient("192.168.25.128",27017), "lf-demo"); MorphiaMember morphiaMember = new MorphiaMember();
morphiaMember.setAddr("anhui hefei");
morphiaMember.setAge(18);
morphiaMember.setName("lf001"); Key<MorphiaMember> key = ds.save(morphiaMember);
System.out.println(key.getId());
}
}
输出:5cbf34e2ee1cd4337cec8875

mongoDB的一些疑问及解答
1、怎么配置mongdb在centos启动时就默认启动?
利用网络资源(关键是思路)
2、怎么配置mongdb在centos启动时就默认启动
用户行为数据,数据量非常大
有一种后悔的感觉,想着更换平台
迁移会遇到一些问题
不要滥用,不要滥用,不要滥用
它是一个最像关系型数据库的非关系型数据库(给数据操作带来便利)
3、Mongo和ES对比
有elasticsearch 纯粹的是json(字符串)
mongo的优势是哪些
BSON GirdFS(复杂)
4、用户手机注册验证码存取适合用mongo吗?还是redis?
建议用Seesion,用Redis过时时间,不推荐用MongoDB
5、MongoDB应用场景
系统操作日志 可以的
那什么情况下适合mongo:
不规则日志:ELK, Log4J INFO,ERROR,WARN,DEBUG(字符串?)
Pattern,用正则去解析字符串,不止一个正则,
每一种日志格式都要编写一个正则去匹配
既然用正则麻烦,为什么还用ELK存储日志
你的系统已经平稳运行N年了(.Net,PHP、Java)
适合mongoDB:
规则日志:MongoDB,结构化的整理,
用户行为日志 operationTime creator type target
Timline,调用链路 invoker Time targetMethod args returnVal throws
持续增量(id + UpdateTime)
文件存储:GirdFS(文件存储系统)
不适合Reids:数据需要持久性的而且有一定的依赖性
适合Redis:数据会设置时效
分布式锁
用户登录token
数据库缓存中间件
6、能讲讲MongoDB(GridFS)、Hadoop、HBase对于数据存储得使用场景选择吗?
定位:
MongoDB,为一个结构化的缓存,由于设计原理不同,数据量是一定的瓶颈的。
HBase ,基于列簇扩展性,高可用程度会更加灵活,数量级和MongoDB也是有很大差异的。
HBase 通常会跟大数据联系在一起
MongoDB 顶多算是一个日志数据库,文件存储系统
7、Mongo怎么持久化的?
持久化都是用文件的形式存储,其实任何数据库都是用文件实现持久化的
MongoDB(3)--Java 操作 MongoDB 的 API的更多相关文章
- Mongodb快速入门之使用Java操作Mongodb
[IT168 专稿]在上一篇文章中,我们学习了Mongodb的安装和初步使用,在本文中,将学习如何使用Java去编程实现对Mongodb的操作. HelloWorld程序 学习任何程序的第一步,都是编 ...
- java操作mongodb(连接池)(转)
原文链接: java操作mongodb(连接池) Mongo的实例其实就是一个数据库连接池,这个连接池里默认有10个链接.我们没有必要重新实现这个链接池,但是我们可以更改这个连接池的配置.因为Mong ...
- Java操作Mongodb(转载)
好文章,值得收藏 HelloWorld程序 学习任何程序的第一步,都是编写HelloWorld程序,我们也不例外,看下如何通过Java编写一个HelloWorld的程序. 首先,要通过Java操作Mo ...
- [转载]使用Java操作Mongodb
HelloWorld程序 学习任何程序的第一步,都是编写HelloWorld程序,我们也不例外,看下如何通过Java编写一个HelloWorld的程序. 首先,要通过Java操作Mongodb,必须先 ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- JAVA操作MongoDB数据库
1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...
- [转]MongoDB for Java】Java操作MongoDB
原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...
- Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html 介绍到了在MongoDB的控制台完成MongoDB的数据操作,通 ...
- Mongodb入门并使用java操作Mongodb
转载请注意出处:http://blog.csdn.net/zcm101 最近在学习NoSql,先从Mongodb入手,把最近学习的总结下. Mongodb下载安装 Mongodb的下载安装就不详细说了 ...
- 浅谈如何用Java操作MongoDB
NoSQL数据库因其可扩展性使其变得越来越流行,利用NoSQL数据库可以给你带来更多的好处,MongoDB是一个用C++编写的可度可扩展性的开源NoSQL数据库.本文主要讲述如何使用Java操作Mon ...
随机推荐
- CentOS 7安全加固
本次实验使用的centos 7 版本 一.查找系统中是否存在空密码账户 1.使用命令: awk -F: '($2==""){print $1}' /etc/shadow 直接查看. ...
- 小程序开发:canvas在画布上滑动,页面跟着滑动问题
微信小程序官方文档有说明,disable-scroll="true" 可以阻止页面下拉和滚动.这里有个坑,disable-scroll在真机上如果要生效,那么要给canvas绑定一 ...
- docker hub切换国内镜像
官方docker hub访问非常的慢,安装之后最好先切换国内镜像: 执行: curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh ...
- 网络操作基础(one)
P12 一.什么是网络操作系统?网络操作系统具有哪些基本功能? 二.网络操作系统具有哪些特征? 三.常用的网络操作系统有哪些?它们各具有什么特点? 四.在网络操作系统中主要可提供哪些? ———— —— ...
- VUE路由携带参数的三种方式
vue 通过路由在进行页面跳转时,会经常携带参数用于同步页面间的数据 路由中携带参数的方式总结如下: 路由定义示例: { name: 'list', path: '/list', component: ...
- java基础(一):我对java的三个环境变量的简单理解和配置
首先说说java的三个环境变量:java_home,classpath,path java_home:jdk的安装路径[你一层一层点开安装路径,直到当前目录有一个bin目录,然后在地址栏里面右键单击复 ...
- Pytho条件判断
def health_status(): height = float(input("请输入身高(单位:米) :")) weight = float(input("请输入 ...
- C# - 匿名对象属性的赋值与取值
在new出匿名对象的函数内可以直接调用该匿名对象的属性取值. 可是在其它函数就无法调用匿名对象的属性或方法. 这时,我们可以通过c#的反射机制取值: 文章出处:https://www.cnblogs. ...
- OpenStack控制节点上搭建Q版keystone服务(step3)
keystone服务监听两个端口:5000和35357 一.安装和配置 1.安装keystone组件 yum install openstack-keystone httpd mod_wsgi -y ...
- php7 pdo抽象类操作数据库
查询 <?php try { $dbconnect = new PDO('mysql:host=localhost;dbname=pdodatabase','root','753951'); } ...