欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mongodb基本用法 博客分类: mongodb MongoDBHibernateMySQLRuby 

程序员文章站 2024-03-15 12:06:23
...
最近无事,心情郁闷,不知该做什么事才好。反正也没事,前些日子听JE老大分析了一下键值数据库,由于有些数据库只支持ruby,所以找了一种能支持JAVA的,那就是mongodb,以前虽然也听别人说过键值数据库,但是不感兴趣,现在有那么一点兴趣了,就试一下也无妨。

反正自己对hibernate之类的关系匹配一直不满,现在也开始厌倦关系型数据库了,所以正好有机会试一下其它的数据库。

需要的基本环境:

jdk1.6(官方说的是1.5也可以,但实际上1.5上运行有错,因为驱动包是在1.6上运行的)
mongodb-win32-i386-1.0.1
mongo-1.0.jar

有了上面的基本环境后,就可以做些例子了。但是在做例子之前,可以先了解一下mongodb的基本用法。

启动数据库服务:进入数据库目录的bin目录下,键入:
mongod --dbpath d:/data(参数dbpath必须加上)

进入客户端:
mongo

关闭数据库可直接ctrl+C就行了。

因为没有相应的图形化界面,所以得用些命令才行。有一些命令与原来的mysql基本相似,但有一些则不同,下面是几个常用的命令:

show dbs : Print a list of all databases on this server
use dbname : Set the db variable to represent usage of dbname on the server 
show collections : Print a list of all collections for current database 
show users : Print a list of users for current database 
show profile : Print most recent profiling operations that took >= 1ms  

上面是官方文档上列出的几个基本命令,感觉太少,而实际可以使用的命令还有很多,特别是基本的db对象,比如要删除一个数据库:
1.use dbname
2.db.dropDatabase()

详细用法可参考API文档。

上面介绍了一些数据库的常用用法,但实际上真正使用的场合并不多,只是有时候需要验证一下插入的数据才会这么做。

下面将介绍一下,它与java之间的交互。与连接其它的数据库一样,首先得建立数据库连接

Mongo mongo = new Mongo("127.0.0.1", 27017);
DBAddress dbAddress = new DBAddress("localhost","fans");
			mongo = new Mongo(dbAddress);


上面代码给出了两种基本的连接方式,第一种会以默认账户test登录,第二种方式就是手动换一个用户名登录。这里也弄出一个问题,那就是连接数据库的时候居然不需要密码,其实这也不算是一个问题,因为mongodb在验证用户是否合法提供了单独的方法,如果要验证一个用户与密码是否合法可以这样:
//增加一个用户,密码需转换成字符数据
db.addUser("fans", "123".toCharArray());
System.out.println(db.authenticate("fans", "123".toCharArray()));


这样控制台会输出true,否则输出false。而且存入密码时不再需要手动加密,这已经由java驱动包做了,存入数据库的密码已经是加过密的了。

下面将介绍如何存入对象:

DBObject user = new BasicDBObject();
		user.put("name", "fansof");
		user.put("password", "12346");
//如果没有对应的users数据库,数据库会为此创建一个
DB db = mongo.getDB("users");
//如果没有对应的userCollection,数据库会创建一个
DBCollection coll = db.getCollection("userCollection");
		
		DBObject object = new BasicDBObject();
		object.put("username", "fans");
		object.put("user", user);
		coll.insert(object);


上面代码演示了存入对象的基本用法,需要注意的是每个存入的对象必须是mongodb提供的基本对象。存入对象的操作是在DBCollection 中进行的,这也应证了mongodb的主要特点之一:面向集合存储。

以上就是mongodb的基本用法,以后有机会的话,还会详细介绍一些其它的功能。