MongoDB的基本使用及java对MongoDB的基本增删改查

MongoDB的特点

  • MongoDB 是文档存储数据库,存储结构灵活
  • MongoDB 支持复杂查询操作、支持序列
  • MongoDB 采用C++开发,可以做分布式扩展
  • MongoDB 采用BSON格式存储
  • MongoDB 支持js引擎,可以编写js语句块

安装和使用

1.以管理员身份运行cmd.exe进入命令行控制台,启动mongod服务端,

mongod --dbpath F:\mongodb\data --logpath F:\mongodb\logs\a.log启动mongo客户端:mongo

2.将服务器启动做成Window服务

以管理员身份运行cmd.exe进入命令行控制台

  • 执行创建MongoDB服务命令

    mongod --dbpath F:\mongodb\data --logpath F:\mongodb\logs\a.log --serviceName MongoDB --install
    
  • 启动和停止MongoDB服务
    net start MongoDB
    net stop MongoDB
    
  • 删除MongoDB服务(先停止服务)
    sc delete MongoDB

MongoDB操作命令

库操作(用户空间)

  • show dbs //查看有哪些库
  • use xxx //创建使用某个库
  • db.dropDatabase() //删除当前库

集合操作(表)

  • show collections //查看当前库有哪些集合
  • db.xxx.insert() //插入记录时自动创建集合
  • db.xxx.drop() //删除集合

记录操作(记录)

  • db.xxx.insert() //插入记录

    db.emp.insert({"empno":1001,"ename":"tom"})
    
    db.dept.insert([{"dno":111,"dname":"ui"},{"dno":112,"dname":"h5"}])
    
    for(var i=1;i<100;i++){
        db.dept.insert({"dno":i,"dname":"java"+i});
    };
    
  • db.xxx.find() //查询记录
    db.emp.find()
    
    db.dept.find({"dno":50})
    
    db.dept.find({"dno":{$gt:90}})
    
    db.dept.find({"dname":/h/})
    
  • db.xxx.update() //更新记录
    //整体更新
    db.dept.update({"dno":2},{"dname":"php"})
    
    //局部更新
    db.dept.update({"dno":3},{$set:{"dname":"h5"}})
    
    //更新多条记录,第三个false表示没有符合记录不插入;true表示插入。第四个参数true表示多行更新;false表示单行
    db.dept.update({"dno":{$lt:10}},{$set:{"dname":"JAVA"}},false,true)
    
  • db.xxx.remove() //删除记录
    db.emp.remove({})
    
    db.dept.remove({"dno":1})
    
    db.dept.remove({"dno":{$gt:50}})
    

其他操作

  • 统计

    //统计dept记录数量
    db.dept.count()
    
    //获取dname值,去重
    db.dept.distinct("dname")
    
  • 排序
    //按dname降序排列
    db.dept.find().sort({"dname":-1})
    
    //按dname升序排列
    db.dept.find().sort({"dname":1})
    
  • 分页
    //获取前5条记录
    db.dept.find().limit(5)
    
    //跳过5条再取5条(取6-10)
    db.dept.find().skip(5).limit(5)
    
  • 索引
    db.dept.ensureIndex({"dname":1})        
    
    db.dept.dropIndexes()
    
    db.dept.find({"dname":"java99999"}).explain("executionStats")

Java访问MongoDB

基于mongo-java包基本访问

API介绍

- MongoClient  连接对象  Mongo
- MongoDatabase 库对象   DB
- MongoCollection 集合对象  DBCollection
- MongoCursor 查询结果集对象 DBCoursor
- Document 记录对象  DBObject
public class MongoDBTest {
    @Test
    public void test1() {
        MongoClient m = new MongoClient("localhost", 27017);
        MongoIterable<String> dbs = m.listDatabaseNames();// 查询数据库列表
        MongoCursor<String> iterator = dbs.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
    //查询全部测试
    @Test
    public void test2() {
        MongoClient m = new MongoClient("localhost", 27017);
        MongoDatabase dbs = m.getDatabase("java20");// 查询数据库名
        /// 查询数据库表 /java20.java20
        MongoCollection<Document> collection = dbs.getCollection("java20");
        MongoCursor<Document> cusor = collection.find().iterator();// 查询数据
        // 使用迭代器进行迭代
        while (cusor.hasNext()) {
            Document next = cusor.next();
            Object object = next.get("user");
            String name = next.getString("name");
            String pwd = next.getString("pwd");
            System.out.println("userID" + object + "   name:  " + name + "||  :Password:" + pwd);
        }

    }

    //过滤查询测试
    @Test
    public void test3() {
        MongoClient m = new MongoClient("localhost", 27017);
        MongoDatabase database = m.getDatabase("java20");
        MongoCollection<Document> collections = database.getCollection("java20");
        // Bson filter = Filters.lt("dno", 10);//{"dno":{$lt:10}}
        Bson lt = Filters.lt("user", 10);
        MongoCursor<Document> documents = collections.find(lt).iterator();
        while (documents.hasNext()) {
            Document d = documents.next();
            Object userid = d.get("user");
            Object name = d.get("name");
            Object pwd = d.get("pwd");
            System.out.println("id为:" + userid + " 姓名是:" + name + "  密码是:" + pwd);
        }
        m.close();

    }
    //插入测试
    @Test
    public void test4() {
        MongoClient m = new MongoClient();
        MongoDatabase database = m.getDatabase("java20");//使用java20的一个数据库
        MongoCollection<Document> coll= database.getCollection("emp");//查找emp的表,如果没有emp表就创建一个表

        Document doc=new Document();
        doc.put("eno", 1003);
        doc.put("ename", "being");
        doc.put("salary", 5755);
        coll.insertOne(doc);
    }

    //局部更新
    @Test
    public void Test5(){
        MongoClient m=new MongoClient("localhost",27017);
        MongoDatabase database = m.getDatabase("java20");//获取当前数据库的库名
        MongoCollection<Document> emp = database.getCollection("emp");//

        Bson where = Filters.eq("eno", 1002);//

        Document doc=new Document();
        doc.put("salary", 8356); //{"salary":4646}
        Document up=new Document();
        up.put("$set", doc);     //{$set:{"salary":5657}}
        //这里使用了更新
        emp.updateOne(where, up);
        m.close();
    }

    //全部更新
    @Test
    public void Test6(){
        MongoClient m=new MongoClient("localhost",27017);
        MongoDatabase database = m.getDatabase("java20");
        MongoCollection<Document> emp = database.getCollection("emp");
        Bson eq = Filters.eq("eno", 1003);
        //System.out.println(eq);  Filter{fieldName=‘eno‘, value=1003}
        Document doc=new Document();
        doc.put("salary", 500);
        //这里使用了替换
        emp.replaceOne(eq, doc);//全部更新
        m.close();
    }

}

原文地址:https://www.cnblogs.com/hx1098/p/9375090.html

时间: 2024-08-24 07:53:21

MongoDB的基本使用及java对MongoDB的基本增删改查的相关文章

Java API实现Hadoop文件系统增删改查

Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.ap

mongodb的学习笔记一(集合和文档的增删改查)

1数据库的增删改查 一.增加一个数据库: use blog-----切换到指定的数据库,如果数据库不存在,则自动创建该数据库(新建的数据库,如果没有存储对应的集合,是不会显示出来的) 二.删除一个数据库 1首先用use 切换到你需要删除的数据库 use test 2然后执行db.dropDatabase()命令 db.dropDatabase() 三.修改一个数据库的名字 db.copyDatabase(fromdb, todb, fromhost) fromdb:源数据库, todb:目标数据

Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在需要存储一些数据,或者拿到一些数据的时候,就需要往数据库里存取数据,那么java如何连接数据库呢?需要哪些步骤? 1.注册驱动 什么是驱动? 驱动就是JDBC实现类,通俗点讲,就是能够连接到数据库功能的东西就是驱动,由于市面上有很多数据库,Oracle.MySql等等,所以java就有一个连接数据库

java学习笔记之分层增删改查

增删改查 一.准备jar包 数据库驱动包 DBUtils包 C3P0连接池 的jar包 二.配置好C3P0的配置文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <c3p0-config> 3 <!-- 默认配置 --> 4 <default-config> 5 <property name="driverClass">com.mysql.jdb

java使用dom4j操作XML增删改查-超简洁

一.前言 1.使用工具:eclipse    环境:JDK-11 2.类说明:共四个类:Zen   |  Shan  |   Gai   |   Cha   (一个类只做一件事,简单明了) 3.引用jar包:dom4j-1.6.1.jar 4.反馈方式:邮箱 [email protected] 5.使用的源XML名为:Humen.xml  内容如下 二.源码 1.在源XML基础上添加新的 节点.属性.文本内容 /** * 作者:向家康 * 版权所有 禁止转发 */package 正式版.XML.

mongodb对数组元素及内嵌文档进行增删改查操作(转)

from:https://my.oschina.net/132722/blog/168274 比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: <!-- lang: js --> { "_id" : "195861", "tags" : [ { "tagId" : NumberLong(766), "optDate" : ISODate(&qu

MongoDB 数据库创建删除、表创建删除、数据增删改查

一.管理 mongodb 数据库:mongo 查看所有数据库列 表 show dbs 二. 创建数据库 创建 数据库 use student 如果真的想把这个数据库创建成功,(collections)中插入数 据.不需要专门创建集合,只db.student 系统发现 是一个陌生的集合名字,所以就显示当前的数据集合(中叫表)删除集合,删除指定的集合 1.查询所有记 录 db.userInfo.find(); 相当于:select* from userInfo; 2.查询去掉后 的当前聚集集合中的某

MongoDB对数组元素及内嵌文档进行增删改查操作

比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: {    "_id" : "195861",    "tags" : [            {                    "tagId" : NumberLong(766),                    "optDate" : ISODate("2013-08-12T15

通过java实现对数据库的增删改查

package cn.hncu; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Scanner;import java.util.UUID; import org.junit.Test; import cn.hncu.pubs.Conn

java对mysql数据库的增删改查代码

首先是用java在mysql中增加数据 import java.sql.* public class jdbc{ public static void main (String[] args){ String driver = "org.git.mm.mysql.Driver"; String url = 'jdbc:mysql://localhost:3306/my'; String username = "root"; String password = &qu