关于Mongodb
Mongodb是一个基于分布式文件存储的数据库。它最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。如下所示:
{
"name":"DilicelSten",
"age":18,
"hobby":["swimming","dancing"]
}
Mongodb的安装
在ubtuntu上可以直接输以下命令行
sudo apt-get install mongodb
安装完之后还需要进行配置
这里可参考:http://unixlzx.blog.163.com/blog/static/102773752201361694345381/
里面已经有详细的步骤介绍,接下来讲讲mongodb中的一些常用的操作:
(1)开启mongodb服务
sudo service mongodb start
(2)关闭mongodb服务
sudo service mongodb stop
(3)修复命令
mongod -repair
Mongodb的使用
在终端中输入mongo即可连接数据库,mongodb的使用与mysql是很相似的,下表是mongodb的一些术语:
mysql术语 | mongodb术语 | 解释 |
---|---|---|
database | database | 数据库 |
table | collention | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
常用命令:
(1)操作前都需使用相关的数据库
show dbs //查看数据库
use XXX //使用XXX数据库
(2)建表存储数据
show collections //查看其中的表
db.XXX.find() //查看表中数据(XXX为collection的名字)
(3)插入数据
db.col.insert({
"name":"DilicelSten",
"age":18,
"hobby":["swimming","dancing"]
})
(3)远程连接
mongo 192.168.235.20/admin -u root -p *****
Java程序实现
需下载mongodb的jdbc,下载链接:https://pan.baidu.com/s/1cH1NQY
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
public class Mongodb {
public static void main(String[] args) throws MongoException, IOException{
mongodb();
}
public static void mongodb() throws MongoException, IOException{
//链接数据库
Mongo connection = new Mongo("127.0.0.1",27017); //url与端口
DB db = connection.getDB("weiboUser");//数据库名字
boolean ok = db.authenticate("root", "***".toCharArray()); //认证过程,用户名(String)和密码(char[])
if(ok){
System.out.println("db connection success!");
//插入数据,mongodb的默认_id为主键,
//在默认的情况下会自己添加哈希值,建议自定义_id,不然很可能会插入很多重复
DBCollection collection = db.getCollection("Region");
//最基本的属性
BasicDBObject attribute = new BasicDBObject();
attribute.put("_id", "5");
attribute.put("电影名","星球大战");
//地区(太多进行读取)
BasicDBObject region = new BasicDBObject();
String path = "/home/hadoop/Seeing项目内容/result/属性/地区.txt";
String region_line;
BufferedReader br = new BufferedReader(new FileReader(new File (path)));
while((region_line = br.readLine()) != null){
String[] result = region_line.split(",");
region.put(result[0], result[1]);
}
attribute.put("地区", region);
collection.insert(attribute);
}
else{
System.out.println("connection error");
}
}
}