关于mongodb的安装使用以及java编程

发布于 2021年 07月 02日 09:57

什么是mongodb

mongodb是nosql中的一种,其 将数据存储为一个文档,数据结构由键值(key,value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。
这里写图片描述

安装mongodb

我主要采用的是ubuntu系统,只需输入以下命令行,即可安装mongodb

sudo apt-get install mongodb

一开始装好系统会自动运行mongodb程序,在终端输入“mongo”,即可进入数据库
这里写图片描述

配置mongodb

apt-get命令很把mongo的服务器安装在:/usr/bin/mongod
在配置文件中,主要配置好mongodb的数据文件的保存路径,和日志文件的保存路径,具体的配置过程可以参考:http://www.cnblogs.com/1zhk/articles/4753135.html
注意的地方:
mongoDB的数据文件默认是需要3G多的空间,如果没有的话,就需要用smallfiles,具体使用命令:mongod –smallfiles
如果系统因没有正常关闭而导致下次开启异常的话,可以输入修复命令:mongod –repair

mongodb数据库的基本操作

关闭:sudo service mongodb stop
开启:sudo service mongodb start
连接数据库:mongo

mongodb的数据库与 sql数据库有一定的联系,例如sql的中table在mongodb中称为collection,sql的行数据(row)在mongodb中就称为文档(document)

数据库中的一系列命令:

show dbs(查看有多少数据库) use databasename(使用特定的数据库) show collections(查看集合) db.collectionname.find().pretty() (相当于select * from tablename,而查询条件写在find函数内) db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }) //插入document,mongodb不需要先建立table以及 table中的属性,可以直接插入文档,默认生成collection

远程连接

mongodb默认是允许所有外网访问,开通的端口是27017,如果对数据库设置用户权限,可以通过以下操作设置:
(1)修改mongodb的配置文件,vi etc/mongodb.conf
修改内容:
bind_ip = 0.0.0.0
port =27017
auth = true
(2)进入mongo,
db.addUser(‘user’, ‘pwd’)
db.auth(‘user’, ‘pwd’)
(3)连接命令

mongo 192.168.235.20/admin -u root -p quincy

java编程mongodb内容:

mongodb的jdbc的下载链接:https://pan.baidu.com/s/1cH1NQY
具体操作示范:

public static void mongodb() throws UnknownHostException, MongoException{

        //链接数据库
        Mongo connection = new Mongo("127.0.0.1",27017); //url与端口
        DB db = connection.getDB("admin");//数据库名字
        boolean ok = db.authenticate("root", "quincy".toCharArray());  //认证过程,用户名(String)和密码(char[])

        if(ok){
            System.out.println("db connection success!");

            //插入数据,mongodb的默认_id为主键,
            //在默认的情况下会自己添加哈希值,建议自定义_id,不然很可能会插入很多重复
            DBCollection collection = db.getCollection("account"); 
            BasicDBObject document = new BasicDBObject();
            document.put("_id", "quincy");
            document.put("age",30);
            document.put("createdDate", new Date());
            collection.insert(document);

            //更新数据
            BasicDBObject query = new BasicDBObject();
            query.put("name", "quincy");
            BasicDBObject newDocument = new BasicDBObject();
            newDocument.put("name", "zhang");
            BasicDBObject updateObj = new BasicDBObject();
            updateObj.put("$set", newDocument);
            collection.update(query, updateObj);

            //查询数据
            BasicDBObject searchQuery = new BasicDBObject();
            searchQuery.put("_id","quincy");
            DBCursor cursor =  collection.find(searchQuery);
            while(cursor.hasNext()){
                System.out.println(cursor.next());
            }

        }
        else{
            System.out.println("connection error");
        }
    }