​​Mongo​​ 是目前很热门的数据库,专门用来处理大数据,性能应该不错.下载windows版本,绿色解压直接可以使用.

1. 服务端 

mongnod.exe --dbpath d:/mongnodb/db

浏览器浏览: http://localhost:28017/

 

2. 客户端 

  命令行直接输入mongo即可进入javascript shell界面

 

3. windows服务启动

mongod --logpath D:/mongodb/logs/mongodb.log --logappend --dbpath D:/mongodb/data/db --directoryperdb --serviceName MongoDB --install

 

net start MongnoDB 

net stop MongnoDB

 

4.基本命令

show dbs

show collections

show users

use <db name>

db.help

 

// 查看当前库

db 

// 删除集合

db.foo.drop()

 

// 建立集合

db.createCollection('product')

 

4.1 删除

db.users.remove()

db.users.remove({a:1})

 

4.2 插入数据

// 插入时会自动建立集合

db.foo.insert({ a : 1 }) // 如果主键a存在,不做任何处理

db.foo.save({a:1}) // 如果主键a存在,则进行更新

 

4.3 更新

UPDATE users SET a=1 WHERE b='q'

db.users.update({b:'q'}, {$set:{a:1}}, false, true)

 

4.4 建立索引

db.users.ensureIndex({x:1}) // 升序

 

4.5 重命名集合

db.users.renameCollection("user")

 

4.6 查找

db.foo.find()

db.foo.find().count()

// a=1

db.foo.find({a:1})

// a>1

db.foo.find({a:{$gt:1}})

// 查询前四条

db.foo.find().limit(3)

// 查询第一条记录

db.foo.findOne() 

// 查询指定列

db.foo.find({a:1},{y:true})

 

// 指定对象属性查询,使用.连接

db.foo.find({'person.age':20})

 

// in

// not in &NIN

db.foo.find({x:{$IN:[2,4,6]}})

 

// OR条件

db.foo.find({$OR[{a:1},{a:2}]})

 

5.保存多条记录

for(var i=1;i<=20;i++) db.user.save({x:8,y:i})

 

6. 迭代器使用

var cursor=db.user.find() // 缓存游标

printjson(cursor[4]) // 打印第5条记录

 

// 遍历所有的记录 

cursor.forEach(function(x)

{

print(x.id);

});

 

// 结果排序,ts降序排列

db.user.find().sort({ts:-1}) 

 

6.访问控制

为了使MongoDB安全生效,必须以--auth参数启动,同时还要在db.system.users文档中增加用户信息

 

db.addUser("scada","scada")

db.removeUser("scada")

db.system.users.find()

 

// 测试是否生效

db.auth('scada','scada') 

打印1表成功,0表失败

 

6. Java操作MongoDB 

   下载最新Java驱动:

// 建立连接
Mongo m=new Mongo("localhost");
//Mongo m=new Mongo("localhost",27017);

// 获取所有的库名
for(String lib:m.getDatabaseNames()){
System.out.println(lib);
}

// 获取指定库
DB db=m.getDB("user");

// 用户认证
//boolean auth=db.authenticate("scada","scada".toCharArray());

// 获取user下所有的集合
Set<String> colls=db.getCollectionNames();
for(String col:colls){
System.out.println(col);
}

// 获取指定集合
DBCollection cols=db.getCollection("user");

/*
// 插入数据
BasicDBObject doc=new BasicDBObject();
doc.put("name", "mongo");
doc.put("count", 1);
BasicDBObject obj=new BasicDBObject();
obj.put("count",1);
doc.put("obj", obj);
dc.insert(doc); // 插入对象
*/

// 遍历所有记录
DBCursor cur=cols.find();
while(cur.hasNext()){
System.out.println(cur.next());
}

// 条件查询
BasicDBObject query=new BasicDBObject();
query.put("x", 8);
cur=cols.find(query);

// 20<x<=30
query.put("x", new BasicDBObject(">",20).append("$lte", 30));