`
pengfeifei26
  • 浏览: 245690 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

mongodb

 
阅读更多
java 对mongodb的操作
1.1Java连接mongodb数据库 
  
1.1.1连单台mongodb   Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017     Mongo mg = newMongo(ip);//可以指定ip 端口默认为27017 
Mongo mg = newMongo(ip,port);//也可以指定ip及端口号
  1.1.2连双台mongodb   //ip为主机ip地址,port为端口号,dataBaseName相当于数据库名 DBAddress left = new DBAddress("ip:port/dataBaseName"); 
 DBAddress right = new DBAddress("ip:port/dataBaseName"); 
//若一个mongodb出现问题,会自动连另外一台 Mongo mongo = new Mongo(left, right);  1.1.3连多台mongodb  
List<ServerAddress> mongoHostList = newArrayList<ServerAddress>(); mongoHostList.add(newServerAddress("ip",port)); mongoHostList.add(newServerAddress("ip",port)); mongoHostList.add(newServerAddress("ip",port));
 Mongo mg = newMongo(mongoHostList);  


2.1获取mongodb的db 

dataBaseName相当于关系数据库里的数据库名,mongodb中若没有该数据库名也不会报错,默认mongodb会建立这个数据库名,为空。 
 DB db = mg.getDB(dataBaseName); //注意:mongodb区分大小写,程序中一定要注意  2.2mongodb的db安全认证  
若这个时候要想访问db中的collection(相当于关系数据库里的表),就必须通过安全认证才可以访问,否则后台会报您没有通过安全认证。 
  //安全认证java代码 返回true表示通过,false表示没通过不能进行操作
 boolean auth =db.authenticate("userName", "password".toCharArray()); 
 3.1得到mongodb中的db的collection   
DBCollection users = db.getCollection(tableName);   
参数tableName相当于关系数据库里的表名,若mongodb中没有该tableName,默认会创建该tableName,为空  
 3.2mongodb中的db的collection自增长主键   Mongodb中也像传统的关系数据库里表一样,有主键(_id)概念,用来唯一标识他们。当用户往collection中插入一条新记录的时候,  如果没有指定_id属性,那么mongodb会自动生成一个ObjectId类型的值,保存为_id的值。   3.3java对collection进行插入操作  
 3.3.1第一种插入方式 
 DBObject data1 = newBasicDBObject(); data1.put("cust_Id", "123456"); data1.put("is_Show", 1);  data1.put("start_time", newDate()); 


users.insert(data1);//等同于users.save(data1); 

  3.3.2第二中插入方式 
BasicDBObjectBuilderdata1 =BasicDBObjectBuilder.start().add(...).add(...);   users.insert(data1.get());//等同于users.save(data1.get()); 
3.3.3第三种插入方式  Map<String, Object> data1 = new HashMap<String, Object>(); data1.put(...); ……    users.insert(new BasicDBObject(data1));//等同于users.save(new BasicDBObject(data1) );
  3.3.4第四中插入方式  String json = "{'database': 'mkyongDB','table' : 'hosting'," +  "'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' :'true'}}}"; DBObject data1 = (DBObject)JSON.parse(json); users.insert(data1);//等同于users.save(data1); 
3.4java对collection的查询操作
  ====================================  DBObject fields = new BasicDBObject(); fields.put("_id", false); fields.put("tag", true); fields.put("tv_sec", true);


DBCursor cur = users.find(query, fields); 可以用来过滤不需要获取的字段, 减少IO ====================================
3.4.1查询所有的数据find()   DBCursor cur = users.find(); while(cur.hasNext()){...}  
3.4.2查询id大于等于1的记录,并且只取10条记录  DBCursor cur = users.find(newBasicDBObject("_id",newBasicDBObject("$gte",1))).limit(10);
3.4.3查询id大于等于1的记录,并按id进行降序-1表示降序,1升序。  DBCursor cur = users.find(new BasicDBObject("_id",newBasicDBObject("$gte",1))).sort(newBasicDBObject("_id",-1));   3.4.4查询id大于等于1的记录,并跳过前10条记录显示 相当于id>10  DBCursor cur = users.find(newBasicDBObject("_id",newBasicDBObject("$gte",1))).skip(10);
  3.4.5查询id大于等于1的记录,跳过前10条记录并且只显示10条记录。相当//于分页功能where id>10 and id<=20  DBCursor cur = users.find(newBasicDBObject("_id", newBasicDBObject("$gte",1))).skip(10).limit(10); 
3.4.6查询id大于等于1的所有记录数 返回int型  users.find(newBasicDBObject("_id",newBasicDBObject("$gte",1))).count()


3.4.7findAndRemove() 查询_id=30000的数据,并且删除  users.findAndRemove(newBasicDBObject("_id", 30000)); 
3.5java对collection的更新操作   查询id为300的记录,将cust_Id的值更新为6533615,一定要注意大小写,以及数据//类型,返回值为int表示所影响的记录条数可以用 users.findOne(newBasicDBObject("_id",300));查看下,会发现这条记录//只返回两个字段了,分别为_id,cust_Id,别的字段都删除了。  users.update(newBasicDBObject("_id",300), newBasicDBObject ("cust_Id","6533615")).getN();   //这种写法可以实现只更新id为300的cust_Id值为6533615,而不删除这条记录的别的字//段属性  users.update(newBasicDBObject("_id",300), newBasicDBObject("$set",newBasicDBObject("cust_Id","6533615"))).getN();
3.6java对collection的删除操作  //移除cust_Id为6533615的数据。注意 用remove方法不释放磁盘空间, //mongodb只在collection中做了标志,没有正在删除。  users.remove(newBasicDBObject("cust_Id","6533615")).getN();  //移除id>=1的数据  users.remove(newBasicDBObject("_id",new BasicDBObject("$gte",1))).getN();  //移除整个collection,drop也不释放磁盘空间 users.drop();  
mongodb 小计(查询和导出) $in $gt $lt   分类: 数据库开发技术


mongodb 查询集合之内  > db.roothomesCol.find({"ID":{"$in":[48493297,48701795]}}); mongodb 查询大小之间  > db.roothomesCol.find({"ID":{$gt : 48493297, $lt : 48701795}});    mongo IN 关键字,在集合里面索引限定范围  roothomes $ /mongo/mongodb-2.0.2/bin/mongoexport --host 127.0.0.1 --port 30000 --db roothomesDB -c roothomesCol --query '{"ID":{"$in":[48493297,48701795]}}' --fields _id,AB,AC --csv >  roothomes.csv   mongodb $gt $lt 关键字,在集合里面索引限定范围  roothomes $ /mongo/mongodb-2.0.2/bin/mongoexport --host 127.0.0.1 --port 30000 --db roothomesDB -c roothomesCol --query '{"ID":{$gt : 48420000, $lt : 48430000}}' --fields _id,AB,AC  --csv >  roothomes.csv

分享到:
评论

相关推荐

    Linux安装mongodb客户端

    sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo 写入: [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpg...

    mongodb安装包和compass

    MongoDB是一款开源、分布式、高性能的NoSQL数据库,它不使用传统的表格和列式结构来存储数据,而是采用键值对、文档、集合和图形数据模型。这种设计使得MongoDB在处理非结构化和半结构化数据时表现出色,特别适合大...

    mongodb-测试数据

    MongoDB是一种流行的开源、分布式文档数据库,常被用于构建高性能、可扩展的应用程序。这个“mongodb-测试数据”压缩包显然包含了一些用于测试MongoDB功能的样例数据集,特别是针对增、删、改、查(CRUD)操作的学习...

    linux安装mongodb教程

    /usr/local/mongodb/mongodb-linux-2.0.7/bin/mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/mongodb-linux-2.0.7/logs/mongodb.log --logappend --port=27017 --fork 知识点 6:配置...

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    Spring Data MongoDB是一个强大的Java库,它为开发人员提供了一种简单的方式来访问和操作MongoDB数据库。这个库是Spring Data框架的一部分,旨在简化数据访问层的实现,尤其在使用NoSQL数据库如MongoDB时。MongoDB...

    MongoDB实验 - .docx

    MongoDB 实验报告 本实验报告旨在详细介绍 MongoDB 的安装、配置和基本操作步骤,本报告基于 CentOS 7 系统,通过一步一步的截图和文字说明,帮助读者快速掌握 MongoDB 的使用。 一、安装 MongoDB 首先,我们需要...

    MongoDB之conf配置文件详解

    MongoDB之conf配置文件详解 MongoDB的配置文件是服务器的核心组件之一,它控制着MongoDB服务器的各种设置和行为。在本文中,我们将详细介绍MongoDB的配置文件的各个部分,并解释每个设置的作用和意义。 一、数据库...

    mongodb c#驱动最新驱动mongodb.driver.dll 版本2.12.0-beta1

    MongoDB 是一个流行的开源、基于分布式文件存储的数据库系统,主要设计用于处理大量数据的分布式环境。C# 驱动是 MongoDB 提供的一种客户端库,允许 .NET 开发者与 MongoDB 数据库进行交互。标题提到的是 MongoDB 的...

    mongodb.dll 下载.zip

    MongoDB是一个开源、分布式、高性能的NoSQL数据库,以其灵活性、可扩展性和高可用性而闻名。`mongodb.dll`是MongoDB数据库系统在Windows平台上运行所必需的一个动态链接库(DLL)文件,它包含了MongoDB客户端和...

    geoserver发布mongodb矢量数据地图服务.docx

    Geoserver发布MongoDB矢量数据地图服务 Geoserver是一款功能强大且开源的地理信息系统(GIS)服务器,能够实现空间数据的存储、处理和发布。MongoDB是一款NoSQL数据库,能够存储大量的矢量数据。本文将介绍如何使用...

    MongoDB应用设计模式

    资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...

    MongoDB(mongodb-org-server_5.0.4_amd64.deb)

    MongoDB Community Server(mongodb-org-server_5.0.4_amd64.deb)适用于适用于Debian10 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是...

    mongodb数据库jar包

    MongoDB是一个流行的开源、分布式文档型数据库,设计用于处理大量数据并提供高可用性和高性能。在Java应用程序中,为了与MongoDB进行交互,我们需要使用Java MongoDB驱动程序。这个压缩包包含的就是Java连接MongoDB...

    MongoDB4.2.21 Linux版本安装包

    MongoDB是一款高性能、无模式的分布式文档型数据库,被广泛应用于大数据分析、内容管理系统、物联网(IoT)、实时应用程序和地理位置数据存储等场景。在Linux环境下安装MongoDB 4.2.21版本,是许多系统管理员和开发者...

    MongoDB Community(mongodb-linux-aarch64-ubuntu1804-5.0.8.tgz)

    MongoDB Community Server(mongodb-linux-aarch64-ubuntu1804-5.0.8.tgz)适用于Ubuntu 18.04 Arm芯片, MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决...

    MongoDB(mongodb-src-r5.0.4.tar.gz)

    MongoDB Community Server(mongodb-src-r5.0.4.tar.gz)源代码 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非...

    MongoDB c#驱动 dll

    MongoDB是一种流行的开源、分布式文档型数据库,以其灵活性、高性能和可伸缩性而闻名。在C#开发环境中,MongoDB提供了专门的C#驱动程序,使得开发者能够方便地与MongoDB进行交互。本篇文章将深入探讨MongoDB的C#驱动...

    Mongodb基础知识详解(值得珍藏).pdf

    MongoDB 是一个高性能的NoSQL数据库,以分布式文件存储为基础,提供灵活的数据模型和高效的查询操作。MongoDB 不同于传统的关系型数据库,它采用面向集合的存储方式,支持无模式的数据模型,允许数据自由组织,这...

    Mongodb for Ubuntu 18.04 ARM 64

    MongoDB 是一个流行的开源文档型数据库,被广泛用于存储、管理和检索非结构化或半结构化数据。在本文中,我们将深入探讨如何在基于ARM架构的Ubuntu 18.04系统上安装和使用MongoDB。 一、ARM架构与Ubuntu 18.04 ARM...

    MongoDB Days 2015 深圳 PPT 共享

    MongoDB是一种分布式文档数据库,以其灵活性、高性能和可伸缩性而闻名,尤其适用于处理大量半结构化和非结构化数据。MongoDB Day 2015 深圳活动显然是一个专门针对MongoDB技术的研讨会或会议,旨在深入探讨和分享...

Global site tag (gtag.js) - Google Analytics