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() 
原文地址:https://www.cnblogs.com/liangliangzz/p/10241459.html