• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > mongodb基础操作,mongodb基础

mongodb基础操作,mongodb基础

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含mongodb 操作符,java操作mongodb,mongodb数据库操作,mongodb怎么操作,mongodb操作等服务器相关知识,网友希望可以进行参考

mongodb基础操作,mongodb基础


mongodb是一种基于文档类型的高性能nosql数据库,在高并发下具有优秀的表现,因此,在互联网行业中,mongodb的使用场景将非常广泛。

当然,mongodb主要对性能关注很多,因而没有提供类似于关系数据库的事务的功能,对于复杂的业务及严格数据一致性要求很高有企业级应用,不建议使用mongodb(网上也有自己去实现事务提交的方案,但实现起来比较繁琐,类似于我们早期dbase,access文件型数据库的事务解决方案)。

其实,也不排除在企业级应用上把某些访问压力大的,对事务要求不严格的数据保存到nosql数据库中。

spring data框架,提供了对mongodb的支持,大家可以到http://mongojack.org/,及http://www.springsource.org/spring-data/mongodb

上了解更多信息mongodb及sprig data for mongodb相关信息。

下面,我用一个简单的实例,给大家讲解mongodb的使用,在这之前,你需要下载mongodb java驱动包,spring data commons, spring data for mongodb这些组件包。

共两个对象,客户,客户订单,一对多关系,单向关联。

客户:

@Document
public class Customer {

    @Id
    private int id;
    private String loginCode;
    private String name;
    private String pwd;
    
    @Version
    private long varsion;
    
    private Date birthday = new Date();
    
    private Set<Order> orders = new HashSet<Order>();


订单:

@Document
public class Order {
    @Id
    private int id;
    private String code;
    private String orderName;


spring data的配置:

@Configuration
public class MongoConfiguration {
  
    public @Bean MongoDbFactory mongoDbFactory() throws Exception {
        //需要用户名、密码验证
        UserCredentials userCredentials = new UserCredentials("yq", "123");
        return new SimpleMongoDbFactory(new Mongo(), "exam", userCredentials);
        //return new SimpleMongoDbFactory(new Mongo(), "exam");
      }

      public @Bean MongoTemplate mongoTemplate() throws Exception {
        return new MongoTemplate(mongoDbFactory());
      }
}

当然,上面这段信息可以配置在xml中,也可以像我上面一样用写在java代码中。

这里要建立exam库,可以在mongodb命令行下,使用 use 命令建立,比如:use exam,然后随便添点东西在里面,库就建好了。另外,如果要启用认证功能,需要大家通过命令向某个库中添加用户(具体如db.addUser(“用户名”,”密码”)),启动mongodb时使用-auth参数。

在整合过程中,如果报:

tried to access methodorg.springframework.core.GenericTypeResolver.getTypeVariableMap错误,是由于包版本冲突所至,请下载新的spring核心包。

下面给大家举例说明api的使用:

我们的所有操作只需要一个MongoTemplate

@Resource
    private MongoTemplate mt;



(1)检测一个空间是否存在 

mt.collectionExists(Customer.class);


(2)建立新空间

mt.createCollection("myCollection");


(3)统计总记录条数,其中query可以为null,或一个建好的带条件查数据的query,如需分页,请先count,再查分页数据

mt.count(new Query(), Customer.class);


(4)删除空间,其中的数据会一并清除

mt.dropCollection("myCollection");


(5)按id号查询

Customer c = mt.findById(1, Customer.class);


(6)删除id号为1的客户

mt.remove(mt.findById(1, Customer.class));


(7)删除id号小于5的客户
mt.remove(new Query(Criteria.where("id").lt(5)), Customer.class);


(8)查询姓名是:张三5,并且密码是:111的用户
     List<Customer> cc = mt.find(new Query(Criteria.where("name").is("张三5").and("pwd").is("111")), Customer.class);
    或List<Customer> cs = mt.find(new Query(Criteria.where("name").is("张三5").andOperator(Criteria.where("pwd").is("111"))), Customer.class);

要注意,一个criteria中只能有一个andOperator,如果要写并列条件,直接用and就可以了。


(9)查询姓名是:张三5,或者 密码是:111的用户
       List<Customer> cs = mt.find(new Query(new Criteria().orOperator(Criteria.where("name").is("张三5"),Criteria.where("pwd").is("111"))), Customer.class);


(10)查询出生日期小于2013年6月6日的客户
        List<Customer> cs = mt.find(new Query(Criteria.where("birthday").lt(new Date())), Customer.class);
        
(11)查询出生日期等于2013年6月6日的客户
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
        List<Customer> cs = mt.find(new Query(
                Criteria.where("birthday").gte(sf.parse("2013-06-06-00:00:00"))
               .andOperator(Criteria.where("birthday").lte(sf.parse("2013-06-09-23:59:59")))
               ), Customer.class);


(12)查询定单编号是0015或者0018的客户
        List<Customer> cs = mt.find(new Query(new Criteria()
              .where("orders.code").in("0015","0018")
                ), Customer.class);

请注意,mongodb可以直接针对集合查询,比如,上面的orders就是一个set集合。


(13)查询包含四的,并以0结尾的客户
        //(正则表 达式,以XX开头,请用^,以XX结束,请用$,不写这两个,表示任意)
       List<Customer> cs = mt.find(new Query(new Criteria()
        .where("name").regex("四.*0$")
  &nbs

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mongodb基础操作,mongodb基础

相关文章

  • Hadoop学习总结,hadoop总结
  • Spark On Yarn 详细配置流程
  • MapReduce 按照Value值进行排序输出,mapreducevalue
  • flume 组件概述与列表
  • mongodb基础操作,mongodb基础
  • HBase RegionServer详解(未完),hbaseregionserver
  • storm的集群安装与配置,storm集群配置
  • Elasticsearch之Nested Sorting,elasticsearch
  • JS中split用法和数组中元素的删除,jssplit
  • Centos 安装R 集成 Hadoop、RHive 配置安装手册,centoshadoop

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • Hbase Client Test Case,hbasecase
    • spark on yarn的cpu使用,sparkonyarncpu
    • 修改 openstack 中 nova boot 创建实例只能在10个以内的限制,openstacknova
    • spark core源码分析9 从简单例子看action操作,sparkcore
    • Hive 和普通关系数据库的异同,hive关系数据库
    • Hadoop对小文件的解决方案,
    • HBase安装配置
    • MapReduce的两表join操作优化,mapreduce表join
    • 深度学习工具caffe详细安装指南,深度caffe安装指南
    • Docker exec与Docker attach,dockerexecattach

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有