zoukankan      html  css  js  c++  java
  • mongodb 命令补充

    根据条件查找数据 
    ----------------------- 
    通过条件查询: db.foo.find( { x : 77 } , { name : 1 , x : 1 } ) 
    ----------------------------- 
          db.foo.find(...).count() 
          db.foo.find(...).limit(n) 根据条件查找数据并返回指定记录数 
          db.foo.find(...).skip(n) 
          db.foo.find(...).sort(...) 查找排序 
          db.foo.findOne([query]) 根据条件查询只查询一条数据 
          db.foo.getDB() get DB object associated with collection  返回表所属的库 
          db.foo.getIndexes() 显示表的所有索引 
          db.foo.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } ) 根据条件分组 
          db.foo.mapReduce( mapFunction , reduceFunction , <optional params> ) 
          db.foo.remove(query) 根据条件删除数据 
          db.foo.renameCollection( newName ) renames the collection  重命名表 
          db.foo.save(obj) 保存数据 
          db.foo.stats()  查看表的状态 
          db.foo.storageSize() - includes free space allocated to this collection 查询分配到表空间大小 
          db.foo.totalIndexSize() - size in bytes of all the indexes 查询所有索引的大小 
          db.foo.totalSize() - storage allocated for all data and indexes 查询表的总大小 
          db.foo.update(query, object[, upsert_bool]) 根据条件更新数据 
          db.foo.validate() - SLOW 验证表的详细信息 
          db.foo.getShardVersion() - only for use with sharding 
    Mongodb的备份工具mongodump 
    
    如果想备份数据库test 如: 
    CODE: 
    
    [falcon@www.fwphp.cn  ~/mongodb/bin]$ ./mongodump --help 
    options: 
    --help                   produce help message 
    -h [ --host ] arg        mongo host to connect to 
    -d [ --db ] arg          database to use 
    -c [ --collection ] arg  collection to use (some commands) 
    -u [ --username ] arg    username 
    -p [ --password ] arg    password 
    --dbpath arg             directly access mongod data files in this path, 
                             instead of connecting to a mongod instance 
    -v [ --verbose ]         be more verbose (include multiple times for more 
                             verbosity e.g. -vvvvv) 
    -o [ --out ] arg (=dump) output directory 
    [falcon@www.fwphp.cn  ~/mongodb/bin]$ ./mongodump -d test -o test/ 
    connected to: 127.0.0.1 
    DATABASE: test         to         test/test 
          test.user to test/test/user.bson 
                   100000 objects 
          test.system.indexes to test/test/system.indexes.bson 
                   1 objects 
    [falcon@www.fwphp.cn  ~/mongodb/bin]$ ls 
    2     mongo   mongodump    mongofiles   mongorestore  mongosniff 
    dump  mongod  mongoexport  mongoimport  mongos     test 
    MongoDB的数据恢复工具mongorestore 
    
    查看test库中的表 
    CODE: 
    
    > show collections 
    system.indexes 
    User 
    删除user表 
    CODE: 
    
    > db.user.drop(); 
    True 
    
    > show collections 
    System.indexes 
    现在利用mongorestore表恢复刚才利用mongodump备份的数据 
    CODE: 
    
    [falcon@www.fwphp.cn  ~/mongodb/bin]$ ./mongorestore --help 
    usage: ./mongorestore [options] [directory or filename to restore from] 
    options: 
    --help                  produce help message 
    -h [ --host ] arg       mongo host to connect to 
    -d [ --db ] arg         database to use 
    -c [ --collection ] arg collection to use (some commands) 
    -u [ --username ] arg   username 
    -p [ --password ] arg   password 
    --dbpath arg            directly access mongod data files in this path, 
                            instead of connecting to a mongod instance 
    -v [ --verbose ]        be more verbose (include multiple times for more 
                            verbosity e.g. -vvvvv) 
    
    [falcon@www.fwphp.cn  ~/mongodb/bin]$ ./mongorestore -d test -c user test/test/user.bson 
    connected to: 127.0.0.1 
    test/test/user.bson 
           going into namespace [test.user] 
    
           100000 objects 
    User表中的10w条记录已经恢复 
    CODE: 
    
    > show collections 
    system.indexes 
    user 
    > db.user.find(); 
    { "_id" : ObjectId("4b9c8db08ead0e3347000000"), "uid" : 1, "username" : "Falcon.C-1" } 
    { "_id" : ObjectId("4b9c8db08ead0e3347010000"), "uid" : 2, "username" : "Falcon.C-2" } 
    { "_id" : ObjectId("4b9c8db08ead0e3347020000"), "uid" : 3, "username" : "Falcon.C-3" } 
    { "_id" : ObjectId("4b9c8db08ead0e3347030000"), "uid" : 4, "username" : "Falcon.C-4" } 
    { "_id" : ObjectId("4b9c8db08ead0e3347040000"), "uid" : 5, "username" : "Falcon.C-5" } 
    ................. 
    has more 
    
    
    
    
    
       1. 超级用户相关: 
    
             #增加或修改用户密码 
    
             db.addUser('admin','pwd') 
    
             #查看用户列表 
    
             db.system.users.find() 
    
             #用户认证 
    
             db.auth('admin','pwd') 
    
             #删除用户 
    
             db.removeUser('mongodb') 
    
             #查看所有用户 
    
             show users 
    
             #查看所有数据库 
    
             show dbs 
    
             #查看所有的collection 
    
             show collections 
    
             #查看各collection的状态 
    
             db.printCollectionStats() 
    
             #查看主从复制状态 
    
             db.printReplicationInfo() 
    
             #修复数据库 
    
             db.repairDatabase() 
    
             #设置记录profiling,0=off 1=slow 2=all 
    
             db.setProfilingLevel(1) 
    
             #查看profiling 
    
             show profile 
    
             #拷贝数据库 
    
             db.copyDatabase('mail_addr','mail_addr_tmp') 
    
             #删除collection 
    
             db.mail_addr.drop() 
    
             #删除当前的数据库 
    
             db.dropDatabase() 
    
       2. 客户端连接 
    
              /usr/local/mongodb/bin/mongo user_addr -u user -p 'pwd' 
    
       3. 增删改 
    
               #存储嵌套的对象 
    
              db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]}) 
    
              #存储数组对象 
    
              db.user_addr.save({'Uid':'yushunzhi@sohu.com','Al':['test-1@sohu.com','test-2@sohu.com']}) 
    
              #根据query条件修改,如果不存在则插入,允许修改多条记录 
    
              db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true) 
    
              #删除yy=5的记录 
    
              db.foo.remove({'yy':5}) 
    
              #删除所有的记录 
    
             db.foo.remove() 
    
       4. 索引 
    
              增加索引:1(ascending),-1(descending) 
    
              db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true}); 
    
              #索引子对象 
    
              db.user_addr.ensureIndex({'Al.Em': 1}) 
    
              #查看索引信息 
    
              db.deliver_status.getIndexes() 
    
              db.deliver_status.getIndexKeys() 
    
              #根据索引名删除索引 
    
              db.user_addr.dropIndex('Al.Em_1') 
    
       5. 查询 
    
              查找所有 
    
              db.foo.find() 
    
              #查找一条记录 
    
              db.foo.findOne() 
    
              #根据条件检索10条记录 
    
              db.foo.find({'msg':'Hello 1'}).limit(10) 
    
              #sort排序 
    
              db.deliver_status.find({'From':'yushunzhi@sohu.com'}).sort({'Dt',-1}) 
    
              db.deliver_status.find().sort({'Ct':-1}).limit(1) 
    
             #count操作 
    
             db.user_addr.count() 
    
             #distinct操作 
    
             db.foo.distinct('msg') 
    
             #>操作 
    
             db.foo.find({"timestamp": {"$gte" : 2}}) 
    
             #子对象的查找 
    
             db.foo.find({'address.city':'beijing'}) 
    
       6. 管理 
    
              查看collection数据的大小 
    
              db.deliver_status.dataSize() 
    
              #查看colleciont状态 
    
              db.deliver_status.stats() 
    
              #查询所有索引的大小 
    
              db.deliver_status.totalIndexSize() 
  • 相关阅读:
    网口 光口 电口都是接什么的?
    webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口
    webService学习之路(二):springMVC集成CXF快速发布webService
    全国计算机技术与软件专业技术资格(水平)考试网上报名平台
    Axis2创建WebService实例
    使用axis2构建webservice
    JavaSE----API之集合(Collection、List及其子类、Set及其子类、JDK1.5新特性)
    SGU
    REST技术第四步 多个參数注解问题
    深入源代码解析Android中的Handler,Message,MessageQueue,Looper
  • 原文地址:https://www.cnblogs.com/liangliangzz/p/10241459.html
Copyright © 2011-2022 走看看