第一步:到 http://www.mongodb.org/downloads 网站去下载对应系统的版本mongoDB数据库,如我下载的
(1)创建一个D:\Program Files\mongoDB目录作为mongoDB的安装的目录,解压下载的数据库包,把整个bin文件复制到mongoDB目录下
(2)在mongoDB目录中创建子目录data,在data目录中创建子目录db,mongoDB的数据库文件默认位于data/db目录,但是它不会自动创建,应此你必须自己来。
(3)接着在data目录中创建子目录log,在log目录下新建一个MongoDB.log文件,用来保存日志文件
(4)打开cmd命令行,定位到D:\Program Files\mongoDB\bin目录,输入命令:mongod --dbpath ../data/db启动mongoDB,注意必须指定数据库文件目录,否则会提示找不到/data/db目录。启动成功后,访问http://localhost:28017/就可以看见mongoDB的控制面板。
(5)将mongoDB安装成windows服务
使用管理员身份打开cmd,定位到D:\Program Files\mongoDB\bin目录,输入mongod --logpath "D:\Program Files\mongoDB\data\log\MongoDB.log" --logappend --dbpath "D:\Program Files\mongoDB\data\db" --directoryperdb --reinstall
执行成功后:默认的服务名为MongoDB,可以使用net start MongoDB命令来启动MongoDB数据库了。要停止,使用net stop MongoDB。
如果你想要自定义一个服务名,可以先用mongod --logpath "D:\Program Files\mongoDB\data\log\MongoDB.log" --logappend --dbpath "D:\Program Files\mongoDB\data\db" --directoryperdb --remove 来删除服务
接着使用:mongod --logpath "D:\Program Files\mongoDB\data\log\MongoDB.log" --logappend --dbpath "D:\Program Files\mongoDB\data\db" --directoryperdb --serviceName mongodb --reinstall
重新安装,现在新的服务名为mongodb
以上是win7环境下安装mongoDB的过程
第二步:接下来,我们可以在我们的开发工具中,测试mongoDB的crud
新建一个java工程,导入mongo-2.2.jar包
建一个测试类
package main.mongoDB;
import com.mongodb.*;
import org.bson.types.ObjectId;
import java.net.UnknownHostException;
/**
* mongoDB的crud
* User: libin
* Date: 13-1-4
* Time: 下午5:05
* To change this template use File | Settings | File Templates.
*/
public class MongodbTest {
private Mongo mg = null;
private DB db;
private DBCollection users;
/**
* 初始化
* TODO
*/
public void init(){
try {
mg=new Mongo("127.0.0.1",27017);
} catch (UnknownHostException e) {
e.printStackTrace();
}catch (MongoException e) {
e.printStackTrace();
}
//获取temp DB 如果默认没有 会自动创建
db=mg.getDB("temp");
//获取users Collection 如果默认没有 会自动创建
users=db.getCollection("users");
System.out.println("所有数据库名:"+mg.getDatabaseNames());
System.out.println("所有数据库名:"+mg.getDB("users"));
}
/**
* 销毁
* TODO
*/
public void destory(){
if(mg!=null){
mg.close();
}
mg=null;
db=null;
users=null;
System.gc();
}
/**
* <b>function:</b> 查询所有数据
* @author cuiran
* @createDate 2012-12-11 09:24:11
*/
public void queryAll(){
print("查询users的所有数据");
//Db游标
DBCursor cur=users.find();
while(cur.hasNext()){
print(cur.next());
}
}
/**
*
*<b>function:</b>添加数据
* @author cuiran
* @createDate 2012-12-11 09:25:23
*/
public void add(){
queryAll();
print("count:"+users.count());
DBObject user=new BasicDBObject();
user.put("name", "libin");
user.put("age", 23);
//users.save(user);
//print(users.save(user).getN());
user.put("sex", "男");
print(users.save(user).getN());
print("count:"+users.count());
queryAll();
}
/**
* 更新数据
*/
public void update(){
queryAll();
BasicDBObject old_obj = new BasicDBObject();
old_obj.put("name", "mark");
old_obj.put("age", 23);
old_obj.put("sex", "女");
users.insert(old_obj);
//这里的new_val对象一定要是find出的而不是new的,否则多字段的情况下就会丢失其它字段信息
DBObject new_val = users.findOne(old_obj);
new_val.put("name", "zhoulong");
/**这里只能修改一条满足条件的记录,而且根据API用updateMulti方法或者设置update第四个参数也无效,
* 如果要批量跟新就要查询后,循环遍历更新了
*/
users.update(old_obj, new_val);
queryAll();
}
/**
*
*<b>function:</b>删除数据
* @author cuiran
* @createDate 2012-12-11 09:38:12
*/
public void remove(){
queryAll();
print("删除id = 50e6a41f68bfaf2e2ecdf1f9:" + users.remove(new BasicDBObject("_id", new ObjectId("50e6a41f68bfaf2e2ecdf1f9"))).getN());
queryAll();
}
public void print(Object o){
System.out.println(o);
}
public void start(){
init();
//add();
remove();
update();
destory();
// queryAll();
}
/**
* TODO
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MongodbTest t=new MongodbTest();
t.start();
}
}
最后,在介绍一个mongoDB的图形化工具