zoukankan      html  css  js  c++  java
  • MongoDB常用命令

    MongoDB的基本操作

    Mongodb中关键字种类:

    db(数据库实例级别)

             db本身

                 db.connection 数据库下的集合信息

                     db.collection.xxx(

    rs(复制集级别)

     

    sh(分片级别)

    rs.status() #副本集状态,一个primary,其它SECONDARY。primary是主,只有primary能写入,从库无法插入数据

    rs.config() ##获取配置

    rs.slaveOk() #SECONDARY需要声明是slave才能查看数据

     

    查询操作

    在客户端指定数据库进行连接:(默认连接本机test数据库)

    [mongod@MongoDB ~]$ mongo 10.0.0.152/admin MongoDB shell version: 3.2.8 connecting to: 10.0.0.152/admin

    > db admin

    查看当前数据库版本

    > db.version()

     

    切换数据库

    > use test; switched to db test

    显示当前数据库

    > db test > db.getName() test

    查询所有数据库

    > show dbs; smile 0.000GB local 0.000GB test 0.000GB > show databases; smile 0.000GB local 0.000GB test 0.000GB

    查看smile数据库当前状态

    > use smile;

    > db.stats() { "db" : "smile", "collections" : 1, "objects" : 10000, "avgObjSize" : 80, "dataSize" : 800000, "storageSize" : 258048, "numExtents" : 0, "indexes" : 1, "indexSize" : 94208, "ok" : 1 }

    查看当前数据库的连接机器地址

    > db.getMongo() connection to 127.0.0.1

    1.5.2 数据管理

    创建数据库

    > use smile;

    说明:

    创建数据库:

    use的时候,系统就会自动创建一个数据库。

    如果use之后没有创建任何集合。系统就会删除这个数据库。

    删除数据库

    > show dbs; smile 0.000GB local 0.000GB test 0.000GB

    > use smile switched to db smile

    > db.dropDatabase() { "dropped" : "smile", "ok" : 1 }

    说明:

    删除数据库:

       如果没有选择任何数据库,会删除默认的test数据库

    创建集合

       方法一:

    > use smile; switched to db smile

    > db.createCollection('a') { "ok" : 1 }

    > db.createCollection('b') { "ok" : 1 }

       查看当前数据下的所有集合

    > show collections; a b

    > db.getCollectionNames() [ "a", "b" ]

    方法二:

      当插入一个文档的时候,一个集合就会自动创建。

    > use smile; switched to db smile

    > db.c.insert({name:'smile'}); WriteResult({ "nInserted" : 1 })

    > db.c.insert({url:'http://blog.nmtui.com'}); WriteResult({ "nInserted" : 1 })

       查看创建的合集

    > db.getCollectionNames() [ "a", "b", "c" ]

       查看合集里的内容

    > db.c.find() { "_id" : ObjectId("5a4cbcea83ec78b7bea904f8"), "name" : "smile" } { "_id" : ObjectId("5a4cbcfc83ec78b7bea904f9"), "url" : "http://blog.nmtui.com" }

    重命名集合

    > db.c.renameCollection("smile") { "ok" : 1 }

    > db.getCollectionNames() [ "a", "b", "smile" ]

       删除合集

    > db.a.drop() true

    > db.getCollectionNames() [ "b", "smile" ]

       插入1w行数据

    > for(i=0;i<10000;i++){ db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new Date()}); } WriteResult({ "nInserted" : 1 })

    查询集合中的查询所有记录

    > db.log.find()

    注:默认每页显示20条记录,当显示不下的的情况下,可以用it迭代命令查询下一页数据。

    > DBQuery.shellBatchSize=50; # 每页显示50条记录 50 app> db.log.findOne() # 查看第1条记录 app> db.log.count() # 查询总的记录数 app> db.log.find({uid:1000}); # 查询UUID1000的数据

    删除集合中的记录数

    > db.log.distinct("name") # 查询去掉当前集合中某列的重复数据 [ "mongodb" ]

    > db.log.remove({}) # 删除集合中所有记录

    WriteResult({ "nRemoved" : }) > db.log.distinct("name"10000) [ ]

    查看集合存储信息

    > db.log.stats() # 查看数据状态

    > db.log.dataSize() # 集合中数据的原始大小

    > db.log.totalIndexSize() # 集合中索引数据的原始大小

    > db.log.totalSize() # 集合中索引+数据压缩存储之后的大小

    > db.log.storageSize() # 集合中数据压缩存储的大小

    pretty()使用

    > db.log.find({uid:1000}).pretty() { "_id" : ObjectId("5a4c5c0bdf067ab57602f7c2"), "uid" : 1000, "name" : "mongodb", "age" : 6, "date" : ISODate("2018-01-03T04:28:59.343Z") }

  • 相关阅读:
    jmeter如何监控服务器CPU、内存、i/o等资源
    Red hat下搭建简易实用的SVN服务器
    ICPC2021(济南)打星队线上打铁游记
    「笔记」如何优雅的造数据
    软件开发中,不要把重点放在“雕琢”上
    对公司数据库管理的看法
    工作两年来 对VB开发的感想
    对数学的一点认识
    学习面向对象语言的感受
    中国 奥运 加油!
  • 原文地址:https://www.cnblogs.com/--smile/p/11055204.html
Copyright © 2011-2022 走看看