mongodb数据库基础 之 mongodb 快速入门大全
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB是文档型的NoSQL数据库,数据以文档(对应关系型数据库的记录)的形式在MongoDB中保存,文档实际上就是一个个JSON字符串,使用JSON的好处是非常直观,通过一系列的Key-Value键值对来表示数据,符合我们的阅读习惯。
在Java、Python中对JSON都有很好的支持,数据从MongoDB中读取出来后,可无需转换直接使用;支持丰富的数据结构,Value可以是普通的整型、字符串、数组、嵌套的子文档,使用嵌套的好处是在MongoDB中仅需一次简单的查询就能够获取到你所需的数据。
MongoDB目前只支持单文档事务,MongoDB暂时不适合需要复杂事务的场景。
灵活的文档模型JSON格式存储最接近真实对象模型,对开发者友好,方便快速开发迭代,可用复制集满足数据高可靠、高可用的需求,运维较为简单、故障自动切换可扩展分片集群海量数据存储。
传统的关系型数据库在解决三高问题上的力不从心。
何为三高?
(1)游戏场景
使用MongoDB存储游戏用户信息、装备、积分等,直接以内嵌文档的形式存储,方便查询、更新。
(2)物流场景
使用MongoDB存储订单信息、订单状态、物流信息,订单状态在运送过程中飞速迭代、以MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更查出来,牛逼plus。
(3)社交场景
使用MongoDB存储用户信息,朋友圈信息,通过地理位置索引实现附近的人、定位功能。
(4)物联网场景
使用MongoDB存储设备信息、设备汇报的日志信息、并对这些信息进行多维度分析。
(5)视频直播
使用MongoDB存储用户信息、点赞互动信息。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
3、实体类 package com.guor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}package com.guor.bean;
import org.springframework.data.annotation.Id;
import java.io.Serializable;
public class User implements Serializable {
@Id
private String id;//主键
//该属性对应mongodb的字段的名字,如果一致,则无需该注解
private String name;
private Integer age;
private String phone;
private String parentid;//上级ID
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getParentid() {
return parentid;
}
public void setParentid(String parentid) {
this.parentid = parentid;
}
@Override
public String toString() {
return User{ +
id=" + id + \ +
, name=" + name + \ +
, age= + age +
, phone=" + phone + \ +
, parentid=" + parentid + \ +
}
}
4、UserRepository package com.guor.dao;
import com.guor.bean.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface UserRepository extends MongoRepository User,String {
Page User getPageByid(String parentId, Pageable pageable);
5、业务层service package com.guor.service;
import com.guor.bean.User;
import com.guor.dao.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public void insertUser(User user){
userRepository.save(user);
}
public void updateUser(User user){
userRepository.save(user);
}
public void deleteUserById(String id){
userRepository.deleteById(id);
}
public List User getAllUser(){
return userRepository.findAll();
}
/**
* 根据id查询评论
*/
public User getUserById(String id){
return userRepository.findById(id).get();
}
/**
* 分页
*/
public Page User getPageByid(String parentId, int page , int size){
return userRepository.getPageByid(parentId, PageRequest.of(page-1,size));
}
6、测试类 package com.guor;
import com.guor.bean.User;
import com.guor.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class MongoDBTest {
@Autowired
private UserService userService;
@Test
public void saveUser(){
User user=new User();
user.setName( 比比东 );
user.setAge(22);
user.setPhone( 1314 );
userService.insertUser(user);
}
@Test
public void getUser(){
List User list = userService.getAllUser();
for(User user : list){
System.out.println(user);
}
}
@Test
public void updateUser(){
User user=new User();
user.setId( 61e3d9ac57b3da05fd0fffed );
user.setName( 云韵 );
user.setAge(29);
user.setPhone( 18525351592 );
user.setParentid( 1 );
userService.updateUser(user);
}
@Test
public void getUserPage(){
Page User pageResponse = userService.getPageByid( 1 ,1, 2);
System.out.println( -总记录数: +pageResponse.getTotalElements());
System.out.println( -当前页数据: +pageResponse.getContent());
}
@Test
public void deleteUser(){
String id = 61e3daf31faa1f5b0e6849f8
userService.deleteUserById(id);
}
}
到此这篇关于mongodb数据库基础 之 mongodb 快速入门大全的文章就介绍到这了,更多相关mongodb入门内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 mongodb数据库基础 之 mongodb 快速入门大全
相关文章
- python-Python与MongoDB数据库-使用Python执行MongoDB查询(三)
- 详解MongoDB 数据库主分片(primary shard)相关总结
- MongoDB数据库基础 装 高级查询操作详解(多条件查询、正则匹配查询等)
- 学会使用MongoDB连接器,实现数据库高效率访问(mongodb连接器)
- 状态MongoDB查看分片状态:一步一步深入研究(mongodb查看分片)
- MongoDB基础入门:快速掌握NoSQL技术(mongodb基础教程)
- 解决方案解构数据库:MongoDB解决方案(mongodb设计)
- MongoDB:扩展性更强的数据库解决方案(mongodb插件)
- 优化MongoDB,提升数据库性能(mongodb优化方案)
- 关闭MongoDB数据库连接:安全的停止方法(mongodb关闭连接)
- 同步MongoDB数据库,全面提升效率(mongodb数据库同步)
- MongoDB管理数据库:查看管理过程(mongodb查看数据库)
- 手把手教你如何清空MongoDB数据库(mongodb清空数据库)
- MongoDB 数据备份:保险起见,手动操作或自动化都应该掌握!(mongodb备份数据)
- MongoDB 监控:打造高效、安全的数据库管理系统(mongodb监控)
- 解决 MongoDB 乱码问题的方法(mongodb乱码)
- MongoDB存储过程:提高数据处理效率的利器(mongodb存储过程)
- Mongodb存储优化:如何高效利用硬盘空间(mongodb硬盘)
- 关联查询MongoDB实现多表联合查询的简单方法(mongodb多表)
- MongoDB:安全性如何?(mongodb安全吗)
- Mongodb中文网:数据库管理利器的必备指南(mongodb中文网)
- Mongodb时区设置:如何在数据库中正确设置时区?(mongodb时区)
- MongoDB数据库锁:如何提高数据安全性与稳定性(mongodb数据库锁)
- Mongodb带您深入探索股票数据的世界(mongodb股票数据)
- 探究MongoDB中最大连接数的权衡(mongodb最大连接数)
- 学习MongoDB:从基础到实战,完整教程(写mongodb)
- MongoDB操作工具类:增至精彩的数据库之旅!(mongodb操作工具类)
- 借助Mongodb轻松完成数据库清理工作(mongodb 数据清理)
- 数据库MongoDB不是一般的数据库(mongodb 不等于)
- MongoDB绘制图表:从数据库中发现规律(mongodb图表)