什么是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.createCollection("mycoll", {capped:true, size:100000})(创建空的文档)
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’)
重启:/etc/init.d/mongodb restart
(3)连接命令
mongo 192.168.235.01/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");
}
}