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));