mongodb使用2

mongodb使用
1)连接mongodb
mongo --port 10001 //指定port,默认port为27017,这样就连接了本地的mongodb了
mongo --host 192.168.0.11  //连接远程的mongodb
mongo -umyuser -p123456  //使用用户名密码登录 类似mysql

[[email protected] ~]# mongo --port 27017
MongoDB shell version: 3.0.7
connecting to: 127.0.0.1:27017/test
>
[[email protected] ~]# mongo  //等同 mongo --port 27017 类似直接mysql直接连接
MongoDB shell version: 3.0.7
connecting to: test
>

[[email protected] ~]# mongo --host 127.0.0.1 #指定主机名字和ip
MongoDB shell version: 3.0.7
connecting to: 127.0.0.1:27017/test
>

[[email protected] ~]# netstat -lnp|grep mongo
tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      3769/mongod        
unix  2      [ ACC ]     STREAM     LISTENING     21107  3769/mongod         /tmp/mongodb-27017.sock

[[email protected] ~]# ps aux|grep mongo
mongod    3769  0.5  2.4 500844 47660 ?        Sl   10:57   0:17 /usr/bin/mongod -f /etc/mongod.conf
root      7198  0.0  0.0 103308   860 pts/1    S+   11:54   0:00 grep mongo

2) 用户管理
用户角色: http://bbs.51cto.com/thread-1146654-1.html

#创建用户

首先mongodb用户是针对库来的,建立用户时要先进入对应的库里
> use test #选择库。若是之前库不存在,会自动创建该库
switched to db test
> db.createUser({user:"admin",pwd:"123456",roles:[{role:‘dbOwner‘,db:‘userdb‘}]}) 
Successfully added user: {
     "user" : "admin",
     "roles" : [
          {
               "role" : "dbOwner",
               "db" : "userdb"
          }
     ]
}
#查看用户
db.system.users.find()  //列出所有用户,需要切换到admin库下(use admin)

> use admin    #所有用户都在这个库下
switched to db admin
> db.system.users.find()
{ "_id" : "test.admin", "user" : "admin", "db" : "test", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "GXrf4fS8qPBncxKo2ElryA==", "storedKey" : "C7DFv8iY0gxXgFCgQC/jbCGWCMU=", "serverKey" : "FfbqE2RglKh45DOxy4VmN8ptSEA=" } }, "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] }
>
show users  //查看当前库下所有的用户
#删除用户,需要切换到admin库      
db.dropUser(‘admin‘)
> use test  #切换到之前建立的库里面删除之前新建的用户
switched to db test
> db.dropUser(‘admin‘)
true
> show users
> db.system.users.find() #然后发现什么用户也没有

3)数据库管理
#查看版本
MongoDB shell version: 3.0.7
connecting to: test
> db.version()
3.0.7

# 切换/创建库
> use userdb //如果库存在就切换,不存在就创建 
switched to db userdb
 
#此时show dbs 看不到userdb,需要我们创建一个集合
db.createCollection(‘clo1‘)
再show dbs就有userdb了。

> use userdb   #此时虽然创建了库但是show的时候是没有的必须创建一个集合
switched to db userdb
> show dbs
admin  0.078GB
local  0.078GB
> db.createCollection(‘clo1‘) #创建集合,集合的名字是clo1
{ "ok" : 1 }
> show dbs
admin   0.078GB
local   0.078GB
userdb  0.078GB  #此时会显示库了

#查看所有数据库  
show dbs

#删除数据库 mydb
> show dbs
admin   0.078GB
local   0.078GB
userdb  0.078GB
> use userdb  #先切换到该库下
switched to db userdb
> db.dropDatabase()
{ "dropped" : "userdb", "ok" : 1 }
> show dbs
admin  0.078GB
local  0.078GB  #此时就没有了之前删除了userdb库了

#查看当前库信息

> use admin // 先切换到该库
switched to db admin
> db.stats()
{
     "db" : "admin",
     "collections" : 4,
     "objects" : 10,
     "avgObjSize" : 67.2,
     "dataSize" : 672,
     "storageSize" : 28672,
     "numExtents" : 4,
     "indexes" : 3,
     "indexSize" : 24528,
     "fileSize" : 67108864,
     "nsSizeMB" : 16,
     "extentFreeList" : {
          "num" : 0,
          "totalSize" : 0
     },
     "dataFileVersion" : {
          "major" : 4,
          "minor" : 22
     },
     "ok" : 1
}
>

#查看mongodb服务器状态

> db.serverStatus()
{
     "host" : "localhost.localdomain",
     "version" : "3.0.7",
     "process" : "mongod",
     "pid" : NumberLong(3769),
     "uptime" : 15510,
     "uptimeMillis" : NumberLong(15509761),
     "uptimeEstimate" : 14138,
     "localTime" : ISODate("2015-12-14T07:16:10.249Z"),
     "asserts" : {
          "regular" : 0,
          "warning" : 0,
          "msg" : 0,
          "user" : 0,
          "rollovers" : 0
     },
     "backgroundFlushing" : {
          "flushes" : 258,
          "total_ms" : 25,
          "average_ms" : 0.09689922480620156,
          "last_ms" : 0,
          "last_finished" : ISODate("2015-12-14T07:15:40.721Z")
     },

。。。。。。。

4)数据管理
创建集合
> use mydb
switched to db mydb
> db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )
{ "ok" : 1 }

#mycol  是集合名字
语法:db.createCollection(name,options)
name就是集合的名字,options可选,用来配置集合的参数,参数如下
capped true/false (可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。
autoindexID  true/false (可选)如果为true,自动创建索引_id字段的默认值是false。
size (可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。单位B
max (可选)指定封顶集合允许在文件的最大数量。
> db.createCollection(‘caimz‘)
{ "ok" : 1 }
> show collections
caimz
mycol
system.indexes
查看集合
# show collections

> show collections
caimz
mycol
system.indexes
> show tables
caimz
mycol
system.indexes
在集合中添加文档
db.Account.insert({AccountID:2,UserName:"123",password:"123456"})  //如果集合不存在,直接插入数据,则mongodb会自动创建集合

> db.Account.insert({AccountID:2,UserName:"123",password:"123456"}) 
WriteResult({ "nInserted" : 1 })
> show tables
Account
caimz
mycol
system.indexes
>  
修改
db.Account.update({AccountID:2},{"$set":{"Age":20}})
查看
db.Account.find()   //查看所有文档

> db.Account.insert({AccountID:2,UserName:"aaa",password:"123456"})
WriteResult({ "nInserted" : 1 })
> db.Account.find()
{ "_id" : ObjectId("566e6f1f269ae27bd4c1929e"), "AccountID" : 2, "UserName" : "123", "password" : "123456" }
{ "_id" : ObjectId("566e6f7f269ae27bd4c1929f"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" }

db.Account.find({AccountID:2})   //根据条件查询

> db.Account.find()
{ "_id" : ObjectId("566e6f1f269ae27bd4c1929e"), "AccountID" : 2, "UserName" : "123", "password" : "123456" }
{ "_id" : ObjectId("566e6f7f269ae27bd4c1929f"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" }
{ "_id" : ObjectId("566e6fab269ae27bd4c192a0"), "AccountID" : 1, "UserName" : "aaa", "password" : "123456" }
> db.Account.find({AccountID:1})
{ "_id" : ObjectId("566e6fab269ae27bd4c192a0"), "AccountID" : 1, "UserName" : "aaa", "password" : "123456" }

> db.caimz.find({UserName:"2"})
{ "_id" : ObjectId("566e7049c796070f15a8a72e"), "AccountID" : 2, "UserName" : "2", "password" : "123456" }

更新:

> db.Account.update({AccountID:1},{"$set":{"Age":20}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.Account.find()
{ "_id" : ObjectId("566e6f1f269ae27bd4c1929e"), "AccountID" : 2, "UserName" : "123", "password" : "123456" }
{ "_id" : ObjectId("566e6f7f269ae27bd4c1929f"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" }
{ "_id" : ObjectId("566e6fab269ae27bd4c192a0"), "AccountID" : 1, "UserName" : "aaa", "password" : "123456", "Age" : 20 }
> db.caimz.update({AccountID:1},{"$set":{"Age":19}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.caimz.find()
{ "_id" : ObjectId("566e7042c796070f15a8a72d"), "AccountID" : 1, "UserName" : "1", "password" : "123456", "Age" : 19 }
{ "_id" : ObjectId("566e7049c796070f15a8a72e"), "AccountID" : 2, "UserName" : "2", "password" : "123456" }
> db.caimz.update({AccountID:1},{"$set":{age:19}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.caimz.find()
{ "_id" : ObjectId("566e7042c796070f15a8a72d"), "AccountID" : 1, "UserName" : "1", "password" : "123456", "Age" : 19, "age" : 19 }
{ "_id" : ObjectId("566e7049c796070f15a8a72e"), "AccountID" : 2, "UserName" : "2", "password" : "123456" }
>

删除
db.Account.remove({AccountID:2})  //根据条件删除

> db.caimz.find()
{ "_id" : ObjectId("566e7042c796070f15a8a72d"), "AccountID" : 1, "UserName" : "1", "password" : "123456", "Age" : 1, "age" : 19 }
{ "_id" : ObjectId("566e7049c796070f15a8a72e"), "AccountID" : 2, "UserName" : "2", "password" : "123456" }
> db.caimz.remove({age:19})
WriteResult({ "nRemoved" : 1 })
> db.caimz.find()
{ "_id" : ObjectId("566e7049c796070f15a8a72e"), "AccountID" : 2, "UserName" : "2", "password" : "123456" }

要删除整个文档
db.Account.drop()

> show tables
Account
caimz
mycol
system.indexes
> db.Account.drop()
true
> show tables
caimz
mycol
system.indexes

查看集合的状态
use dbname  //先进入对应的库,然后查看集合状态
db.printCollectionStats()

5)数据库性能
db.stats()  //查看当前库的信息
db.serverStatus()   //查看mongodb服务器的状态 列出库里面的所以collection
> db.printCollectionStats()
caimz
{
     "ns" : "mydb.caimz",
     "count" : 1,
     "size" : 112,
     "avgObjSize" : 112,
     "numExtents" : 1,
     "storageSize" : 8192,
     "lastExtentSize" : 8192,
     "paddingFactor" : 1,
     "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.",
     "userFlags" : 1,

。。。。。。

时间: 2024-10-21 20:57:53

mongodb使用2的相关文章

ubuntu安装mongodb

参考:http://blog.csdn.net/zhushh/article/details/52451441 1.导入软件源的公钥 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 2.为mongodb创建软件源list文件 ubuntu12.04 echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multi

mongodb 安装、windows服务、创建用户

http://www.cnblogs.com/best/p/6212807.html 打开MongoDB的安装目录如“C:\Program Files\MongoDB\Server\3.4\bin”,并在此目录下新建一个mongo.config文件,文件内容如下: ##数据库目录## dbpath=C:\data\db ##日志输出文件## logpath=C:\data\log\db.log 使用cmd进入命令行 使用cd切换目录到安装目录下,如:cd  C:\Program Files\Mo

MongoDB 学习笔记之 WriteConcern

WriteConcern: 转载:MongoDB WriteConcern(写关注)机制 http://www.ywnds.com/?p=3688&viewuser=40 MongoDB部署模式 MongoDB的部署模式有三种:第一种是单机模式(开发测试):第二种是高可用复制集:第三种是可扩展分片集群.如下图所示. 知道了MongoDB几种常用的部署模式之后,接下来我们看看每种部署模式的写操作过程. MongoDB单点写操作 从上图可以看出,其中primary是MongoDB的一个实例,里面有两

MongoDB副本集

简介 mongodb复制(replication)是将数据同步在多个服务器的过程.主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致.复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并保证数据的安全性.复制还允许您从硬件故障和服务中断中恢复数据. 而副本集(replica set)是从mongodb 1.6 提供的新功能,比复制功能要强大一些并增加了故障自动切换和自动修复成员节点,

mongodb 学习

该命令如果数据库不存在,将创建一个新的数据库, 否则将返回现有的数据库.如果想创建一个数据库名称为 <mydb>, 那么 use DATABASE 语句应该如下: >use mydb switched to db mydb=============================================================================要检查当前选择的数据库使用命令 db >db mydb============================

MongoDB之update

Update操作只作用于集合中存在的文档.MongoDB提供了如下方法来更新集合中的文档: db.collection.update() db.collection.updateOne() New in version 3.2 db.collection.updateMany() New in version 3.2 db.collection.replaceOne() New in version 3. 你可以通过指定criteria或者filter来指定你想更新的文档: update函数执行

MongoDB 数据分发

在MongoDB(版本 3.2.9)中,数据的分发是指将collection的数据拆分成块(chunk),分布到不同的分片(shard)上,数据分发主要有2种方式:基于数据块(chunk)数量的均衡分发和基于片键范围(range)的定向分发.MongoDB内置均衡器(balancer),用于拆分块和移动块,自动实现数据块在不同shard上的均匀分布.balancer只保证每个shard上的chunk数量大致相同,不保证每个shard上的doc数量大致相同. 一,数据按照chunk数量进行均衡分发

MongoDB 搭建分片集群

在MongoDB(版本 3.2.9)中,分片是指将collection分散存储到不同的Server中,每个Server只存储collection的一部分,服务分片的所有服务器组成分片集群.分片集群(Sharded Clustered)的服务器分为三中类型:Router(mongos),Config Server 和 Shard(Replica Set 或 Standalone mongod).使用分片集群,不需要使用强大的计算机,就能存储更多的数据,处理更大的负载.分布式数据库系统的设计目的是:

MongoDB 维护Replica Set

在每个MongoDB(版本 3.2.9) Instance中,都有一个本地数据库(local),用于存储 Replication 进程的信息和本地数据.local 数据库的特性是:位于local数据库中的数据和集合不会被 Replication 进程复制到其他MongoDB instance上.如果实例上有些collection 和 data不计划被复制到其他MongoDB Instance,可以将这些collection 和 data 存储在local 数据库中. MongoDB shell提

MongoDB 分片管理

在MongoDB(版本 3.2.9)中,分片集群(sharded cluster)是一种水平扩展数据库系统性能的方法,能够将数据集分布式存储在不同的分片(shard)上,每个分片只保存数据集的一部分,MongoDB保证各个分片之间不会有重复的数据,所有分片保存的数据之和就是完整的数据集.分片集群将数据集分布式存储,能够将负载分摊到多个分片上,每个分片只负责读写一部分数据,充分利用了各个shard的系统资源,提高数据库系统的吞吐量. 数据集被拆分成数据块(chunk),每个数据块包含多个doc,数