MongoDB
属于NoSQL
数据库的范畴,关于NoSQL
的理论分析汗牛充栋这里就不再涉及,众所周知传统SQL
数据库以表(table
)作为数据存储检索的基础,这样的数据结构严谨但缺乏灵活性,而MongoDB
使用类似JSON
格式的BSON
文件存储数据,因此支持的数据结构非常灵活,在使用中前后导入数据行的条目索引和数目均可不同。
Installation
对版本没有特定要求的话可以直接使用发行版Repo
中提供的软件。
apt-get install mongodb
mongo -version
service mongodb status
配置文件为/etc/mongodb.conf
,默认监听IP
为127.0.0.1
即仅可以从本机访问,改为bind_ip = 0.0.0.0
可以监听外部网络流量,随后service mongodb restart
重启服务。
Client Command Line - mongo
不同于MySQL
中database -> table
的结构,MongoDB
数据存储形式为Database -> Collection
。
默认情况下MongoDB
并不启动用户认证功能即任何连接均可获得对所有database
和collection
的访问,这也是默认监听本机流量的原因。
mongo
是类似于mysql
的数据库终端命令,参数格式如下:
mongo --host <IP> --port <port> -u <username> -p <password> <database>
default host -> 127.0.0.1, port -> 27017, database -> test, no username/password
敲击mongo
进入shell
交互界面,可敲入help
查看命令列表,其中常用命令如下:
show dbs
use <DB_Name>
show collections
db.<Collection_Name>.find()
db.createCollection('<Collection_Name>')
db.<Collection_Name>.insert({xx: 'yy', mm: 'nn'})
db.<Collection_Name>.save({xx: 'yy', mm: 'nn'})
exit
User Auth
MongoDB
中的user
是与database
相对应的,默认存在的admin
数据库对应的user
具备管理员权限,可以查看所有其他数据库的集合数据,其他数据库对应的user
则只能查看对应数据库内的集合数据,所有user
的信息都存储在admin
数据库下system.users
集合中。
use admin
db.addUser('admin','admin')
use test
db.addUser('test','test')
use admin
db.system.users.find()
即便创建了User
信息默认MongoDB
的认证功能也是关闭的,修改配置文件auth = true
,然后service mongodb restart
重启服务生效。
use <DB_Name>
db.auth('<username>', '<password>')
show users
Library/Driver - Java
apt-get install libmongodb-java
dpkg -L libmongodb-java -> /usr/share/java/mongo-java-driver-2.12.4.jar