zoukankan      html  css  js  c++  java
  • mngoDB 常用语法

    http://topmanopensource.iteye.com/blog/1278812### 连接写法:[IP地址:端口号]
    mongo 192.168.1.161:27017;
    show dbs;
    db;--显示正在使用的数据库
    use asdfwerwe_test;
    db.tab_data_result.find();
    db.tab_data_period.find();

    ### 导入,导入数据格式很严谨
    mongoimport -h 192.168.1.161:27017 -d asdfswe_test -c tab_data_result d:data.txt
     


    db.things.remove({"x":"12"});

    条件
    db.collection.find({"field":{$gt:value}});
    db.collection.find({"field":{$lt:value}});
    db.collection.find({"field":{$gte:value}});
    db.collection.find({"field":{$lte:value}});

    范围段
    db.collection.find({"field":{$gt:value1,$lt:value2}});

    $all匹配所有:
    db.users.find({age:{$all:[6,7,8]}});

    $exists判断字段是否存在
    db.users.find({age:{$exists:true}});
    不存在
    db.users.find({age:{$exists:false}});

    null的处理
    db.things.find({y:null});

    查询包含null的对象

    db.things.find({age:{"$in":[null],"$exists":true}}); 
     
    基本操作
    db.AddUser(username,password)  //添加用户
    db.auth(usrename,password)     //设置数据库连接验证
    //例子
    mongo 192.168.0.178
    use admin
    db.auth("mongosa" ,"abc123d");//授权登录
    use basdfsd_test;
    db.cloneDataBase(fromhost)     //从目标服务器克隆一个数据库
    db.commandHelp(name)           //returns the help for the command
    db.copyDatabase(fromdb,todb,fromhost)  //复制数据库fromdb---源数据库名称,todb---目标数据库名称,fromhost---源数据库服务器地址
    db.createCollection('name',{size:3333,capped:333,max:88888})  //创建一个数据集,相当于一个表
    db.currentOp()                 //取消当前库的当前操作
    db.dropDataBase()              //删除当前数据库
    db.eval(func,args)             //run code server-side
    db.getCollection(cname)        //取得一个数据集合,同用法:db['cname'] or
    db.getCollenctionNames()       //取得所有数据集合的名称列表
    db.getLastError()              //返回最后一个错误的提示消息
    db.getLastErrorObj()           //返回最后一个错误的对象
    db.getMongo()                  //取得当前服务器的连接对象get the server
    db.getMondo().setSlaveOk()     //allow this connection to read from then nonmaster membr of a replica pair
    db.getName()                   //返回当操作数据库的名称
    db.getPrevError()              //返回上一个错误对象
    db.getProfilingLevel()
    db.getReplicationInfo()        //获得重复的数据
    db.getSisterDB(name)           //get the db at the same server as this onew
    db.killOp()                    //停止(杀死)在当前库的当前操作
    db.printCollectionStats()      //返回当前库的数据集状态
    db.printReplicationInfo()
    db.printSlaveReplicationInfo()
    db.printShardingStatus()       //返回当前数据库是否为共享数据库
    db.removeUser(username)        //删除用户
    db.repairDatabase()            //修复当前数据库
    db.resetError()
    db.runCommand(cmdObj)          //run a database command. if cmdObj is a string, turns it into {cmdObj:1}
    db.setProfilingLevel(level)    //0=off,1=slow,2=all
    db.shutdownServer()            //关闭当前服务程序
    db.version()                   //返回当前程序的版本信息


    数据集(表)操作
    db.name.drop();//删除一个集合
    db.test.find({id:10})          //返回test数据集ID=10的数据集
    db.test.find({id:10}).count()  //返回test数据集ID=10的数据总数
    db.test.find({id:10}).limit(2) //返回test数据集ID=10的数据集从第二条开始的数据集
    db.test.find({id:10}).skip(8)  //返回test数据集ID=10的数据集从0到第八条的数据集
    db.test.find({id:10}).limit(2).skip(8)  //返回test数据集ID=1=的数据集从第二条到第八条的数据
    db.test.find({id:10}).sort()   //返回test数据集ID=10的排序数据集
    db.test.findOne([query])       //返回符合条件的一条数据
    db.test.getDB()                //返回此数据集所属的数据库名称
    db.test.getIndexes()           //返回些数据集的索引信息
    db.test.group({key:...,initial:...,reduce:...[,cond:...]})
    db.test.mapReduce(mayFunction,reduceFunction,<optional params>)
    db.test.remove(query)                      //在数据集中删除一条数据
    db.test.renameCollection(newName)          //重命名些数据集名称
    db.test.save(obj)                          //往数据集中插入一条数据
    db.test.stats()                            //返回此数据集的状态
    db.test.storageSize()                      //返回此数据集的存储大小
    db.test.totalIndexSize()                   //返回此数据集的索引文件大小
    db.test.totalSize()                        //返回些数据集的总大小
    db.test.update(query,object[,upsert_bool]) //在此数据集中更新一条数据
    db.test.validate()                         //验证此数据集
    db.test.getShardVersion()                  //返回数据集共享版本号

    MongoDB语法与现有关系型数据库SQL语法比较
    db.test.find({'name':'foobar'})
      // SELECT * FROM test WHERE name='foobar'
    db.test.find()
      // SELECT * FROM test
    db.test.find({'data_id':10}).count()
      // SELECT COUNT(*) FROM test WHERE data_id=10
    db.test.find().skip(10).limit(20)
      // SELECT * FROM test LIMIT 10,20
    db.test.find({'data_id':{$in:[25,35,45]}})
      // SELECT * FROM test WHERE data_id IN (25,35,45)
    db.test.find().sort({'data_id':-1})
      // SELECT * FROM test ORDER BY data_id DESC
    db.test.find().sort({'data_id':1})
      // SELECT * FROM test ORDER BY data_id ASC
    db.test.distinct('name',{'data_id':{$lt:20}})
      // SELECT DISTINCT(name) FROM test WHERE data_id<20
    db.test.group({key:{'name':true},cond:{'name':'foo'},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}})
      // SELECT name,SUM(marks) FROM test GROUP BY name
    db.test.find('this.data_id<20',{name:1})
      // SELECT name FROM test WHERE data_id<20
    db.test.insert({'name':'foobar','age':25})
      // INSERT INTO test ('name','age') VALUES('foobar',25)
    db.test.remove({})
      // DELETE * FROM test
    db.test.remove({'age':20})
      // DELETE test WHERE age=20
    db.test.remove({'age':{$lt:20}})
      // SELETE test WHERE age<20
    db.test.remove({'age':{$lte:20}})
      // DELETE test WHERE age<=20
    db.test.remove({'age':{$gt:20}})
      // DELETE test WHERE age>20
    db.test.remove({'age':{$gte:20}})
      // DELETE test WHERE age>=20
    db.test.remove({'age':{$ne:20}})
      // DELETE test WHERE age!=20
    db.test.update({'name':'foobar'},{$set:{'age':36}})
      // UPDATE test SET age=36 WHERE name='foobar'
    db.test.update({'name':'foobar'},{$inc:{'age':3}})
      // UPDATE test SET age=age+3 WHERE NAME='foobar'
     
     
     

    Mongodb使用总结
    1.启动mongodb的服务使用:
      mongod --help
      启动mongodb的本地服务(data目录和bin同级别)
       mongod --dbpath ../data
      从参数文件中启动
       mongod -f /etc/mongodb.cnf
      后台启动方式:
      mongod --dbpath=../data --logpath=../logs --fork

    2.登录mongodb数据库
      mongo --help
      登录本地数据库
      mongo
      登录远程数据库:
      mongo 123.123.101.41:27017/mash5
    3.恢复本地dump文件
      查看帮助:
      mongorestore --help
      导入本地的dump文件
      mongorestore C:mongodbindump_bak_11241739mash5
      导入多个数据库
      mongorestore --directoryperdb C:mongodbindump_bak_11241739
    4.备份数据库
       查看帮助
       mongodump --help

       在mongodump命令目录里生成一个dump目录存储导出文件(导出多个数据库)
       mongodump

       导出数据库到某一个目录(单个数据库)
       mongodump --db mash5 -o C: emp

       远程导出
       mongodump -h localhost --port 27017  -o c: emp
    5.查看mongodb的数据库性能

      查看帮助
      mongostat --help

      查看所有性能相关的情况
      mongostat
    6.查看mongo相关的系统信息
      查看mongos的帮助
        mongos --help
      查看mongo的版本
        mongos --version
      修改一些mongo数据库的相关的参数信息可以采用mongos

      
    7.mongo数据库中gridfs相关的文件信息
     


    8.mongoexport导出
       导出test数据库中things表的数据信息
       mongoexport -d test -c things -o things.dat
         参数说明
      -d  指明使用的库,  本例中为” my_mongodb”
      -c  指明要导出的表,  本例中为”user”
      -o  指明要导出的文件名,  本例中为”user.dat” 
      从上面可以看到导出的方式使用的是 JSON的样式

       导出test数据库中things表中x,y字段以csv格式导出
        mongoexport -d test -c things -f x,y --csv -o things.data
       输出test数据库中things表中x,y字段以json数组格式显示
        mongoexport -d test -c things -f x,y --jsonArray
      

    9.mongoimport 导入
     导入JSON格式的test数据库things表中
     mongoimport -d test -c things --type json --drop --file things.data
     导入cvs数据库
     ./mongoimport -d my_mongodb -c user  --type csv --headerline --file 
    user_csv.dat 
      参数说明
      -type  指明要导入的文件格式 
      -headerline  批明不导入第一行,因为第一行是列名 
      -file   指明要导入的文件路径

    mongo常用一些命令:

    寻求帮助
    help

    查看所有的数据库
    show dbs
    查看一个数据库所有的表
    show collection
    查看用户
    show users
    show profile;
    查看主机的名称
    hostname();
    查看当前目录
    pwd();
    查看数据库相关的帮助:
    db.help();
    查看mongo数据库当前数据库服务器状态
    db.serverStatus();
    查看当前数据库名称:
    db.getName();
    查看当前版本
    db.version();
    查看数据库表的情况
    db.getCollectionNames();
    查看数据库是否存在一个表
    db.getCollection("Feed");
    是否为主数据库
    db.isMaster();

    数据库的情况
    db.stats();

    关闭数据库
    use admin
    db.shutdownServer();
    获取当前连接的对象
    db.getMongo()
    删除Mongo数据库
    db.dropDatabase();


    创建一个Mongo表对象
    db.createCollection("TBS");
    删除数据的表对象
    db.mash5.drop();
    显示当前数据库的操作
    db.currentOp();

    查看所有的数据库命令:
    db.listCommands();


    查看数据库相关命令:
    db.help();
     


    常用Mongodb SQL语句:
    分页查询
    db.Feed.find().skip(300).limit(10000);   
    单个条件查询
    db.Task.find({ "tag" : "个人" }).limit(50);
    多个条件查询
    db.Task.find({ "tag" : "个人", "_id" : ObjectId("4e169d85cc4370e29bc6c72e") }).limit(50).explain();
    根据结构型查询
    db.Task.find({ "bo.Fields.Label" : "私信" }).limit(50).explain();
    db.Task.find({"status":"1"}).count();
    db.Task.findOne({"status":"1"});


    JS特性:
    for(var i=0;i<20;i++){
     db.Task.save({x:i*4,y:i*i});
    }

    var cursor=db.Task.find();
    while(cursor.hasNext()){
      printjson(cursor.next());
    }


    db.Task.find().forEach(printjson);

    var cursor=db.things.find();
    printjson(cursor[4]);

    var arr=db.things.find().toArray();
    arr[5];


    printjson(db.things.findOne({name:"mongodb"}));


    db.things.update({name:"mongodb"},{$set:{name:"mongo_db"}})

  • 相关阅读:
    C# 在代码中创建 DataTable 和从数据库取出的数据 DataTable
    C#编程数据库操作之DataTable
    测试代码的运行时间(C#)
    时间天数 的使用
    遍历panel 上的控件,然后操作
    break 和 continue区别
    DataTable排序的一般方法
    MG758 GIS数据采集终端
    C#中DataTable
    android InputStream相关类
  • 原文地址:https://www.cnblogs.com/svennee/p/4080861.html
Copyright © 2011-2022 走看看