MongoDB的一些常用命令

 

  • mongo ip:port/dbname 连接到远程服务器的mongodb,如果不加后面的参数,则默认连接到本地的test库 
  • use test 使用test这个库
  • show collections 查看当前库下面的所有表名称
  • db.skycomment_1.findOne() 查找该表中的1条记录

mongo 后面可以指定一个JS文件让服务端执行,例如我们的一个数据迁移脚本:
function getCollectionNames(startWith){
  array = [];
  db.getMongo().getDB('comment').getCollectionNames().forEach(function(obj){
  if(obj.indexOf(startWith)==0)
    array.push(obj);
  });
  return array;
}

function migrateComment(cmt,appId){
    cmt.appId=appId;
    cmt.topicId=cmt.topicid
    delete cmt.topicid
    db.getMongo().getDB('comment')["Comment"].save(cmt)
}

getCollectionNames("skycomment_").forEach(function(obj){
  db[obj].find().forEach(function(cmt){
      migrateComment(cmt,parseInt(obj.substring(11)));
  })
});
 里面全部为JS语法,使用起来非常方便,脚本的执行速度蛮高的。

使用mongo的Java客户端时,如果需要打印出执行语句,在启动程序时,需要加入JVM启动参数: -DDB.SHOW=true ,由于打印语句使用的system.out.print,所以在生产环境一定不能使用这个参数。

mongo使用时一定别忘了索引的创建,通常一个好的索引可以将查询执行时间缩短至1/5以上

未完待续

你可能感兴趣的:(jvm,mongodb,脚本)