mongodb 常用命令

BSON

       BSON是Binary JSON 的简称,是一个JSON文档对象的二进制编码格式。BSON同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型。如:BSON有Date类型和BinDate类型。

       BSON被比作二进制的交换格式,如同Protocol Buffers,但BSON比它更“schema-less”,非常好的灵活性但空间占用稍微大一点。

命名空间

      MongoDB存储BSON对象到collections, 这一系列的数据库名和collection名被称为一个命名空间。如同:java.util.List;用来管理数据库中的数据。

索引 

      mongodb可以对某个字段建立索引,可以建立组合索引、唯一索引,也可以删除索引,建立索引就意味着增加空间开销。默认情况下每个表都会有一个唯一索引:_id,如果插入数据时没有指定_id,服务会自动生成一个_id,为了充分利用已有索引,减少空间开销,最好是自己指定一个unique的key为_id,通常用对象的ID比较合适,比如商品的ID。

shell操作数据库:

   1.  超级用户相关:

         1. #进入数据库admin

              use admin

         2. #增加或修改用户密码

              db.addUser('name','pwd')

         3. #查看用户列表

          db.system.users.find()

         4. #用户认证

          db.auth('name','pwd')

         5. #删除用户

            db.removeUser('name')

         6. #查看所有用户

          show users

         7. #查看所有数据库

              show dbs

         8. #查看所有的collection

              show collections

         9. #查看各collection的状态

              db.printCollectionStats()

        10. #查看主从复制状态

             db.printReplicationInfo()

        11. #修复数据库

             db.repairDatabase()

        12. #设置记录profiling,0=off 1=slow 2=all

              db.setProfilingLevel(1)

        13. #查看profiling

              show profile

        14. #拷贝数据库

              db.copyDatabase('mail_addr','mail_addr_tmp')

        15. #删除collection

              db.mail_addr.drop()

        16. #删除当前的数据库

             db.dropDatabase()     

   2. 增删改

         1. #存储嵌套的对象

                      db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})

         2. #存储数组对象

                   db.user_addr.save({'Uid':'[email protected]','Al':['[email protected]','[email protected]']})

         3. #根据query条件修改,如果不存在则插入,允许修改多条记录

            db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)

         4. #删除yy=5的记录

            db.foo.remove({'yy':5})

         5. #删除所有的记录

            db.foo.remove()

3. 索引

         1. #增加索引:1(ascending),-1(descending)

          db.foo.ensureIndex({firstname: 1, lastname: 1}, {unique: true});

         2. #索引子对象

            db.user_addr.ensureIndex({'Al.Em': 1})

         3. #查看索引信息

             db.foo.getIndexes()

            db.foo.getIndexKeys()

         4. #根据索引名删除索引

             db.user_addr.dropIndex('Al.Em_1')

   4. 查询

         1. #查找所有

            db.foo.find()

       2 #查找一条记录

            db.foo.findOne()

        3. #根据条件检索10条记录

            db.foo.find({'msg':'Hello 1'}).limit(10)

        4. #sort排序

            db.deliver_status.find({'From':'[email protected]'}).sort({'Dt',-1})

           db.deliver_status.find().sort({'Ct':-1}).limit(1)

        5 #count操作

            db.user_addr.count()

        6. #distinct操作,查询指定列,去重复

            db.foo.distinct('msg')

        7. #”>=”操作

            db.foo.find({"timestamp": {"$gte" : 2}})

        8 #子对象的查找

            db.foo.find({'address.city':'beijing'})

   5. 管理

         1. #查看collection数据的大小

           db.deliver_status.dataSize()

         2. #查看colleciont状态

           db.deliver_status.stats()

         3. #查询所有索引的大小

            db.deliver_status.totalIndexSize()

猜你喜欢

转载自only81.iteye.com/blog/2155525