标签:mongodb
mongodb基本操作
mongo 172.17.165.245:27017 -uadmin -padmin
use kanfa 数据库名称
db.auth('admin','admin') 通过创建的用户登陆 执行后返回1 代表登陆成功 返回0 代表登陆失败
1
show dbs
> use new10 #选中数据库
switched to db new10
> db.dropDatabase() 进行删除
{ "dropped" : "new10", "ok" : 1 }
show collections
创建集合(带初始化参数)
capped:类型为boolean,如果为true则为创建一个固定大小的集合,当集合中的数据条目达到最大时自动覆盖以前的条目。
autoIndexID:类型为boolean,默认为false,如果设置为true,则会在_id上创建索引。
size:指定集合字节最大值,当capped为true时需要指定。单位为byte
max:指定集合中数据的最大条数。
db.createCollection(
"BizUser",
{capped:1,autoIndexID:1,size:6142800,max:10000}
)
>use test
switched to db test
>db.createCollection("mycollection")
{ "ok" : 1 }
> db.site.find()
{ "_id" : ObjectId("598bff0fa3d24b5fa31de2dd"), "_created" : ISODate("2017-08-10T06:37:03.084Z"), "_modified" : ISODate("2017-08-10T06:37:03.084Z"), "name" : "中国裁判文书网", "table_name" : "", "stat" : 1 }
{ "_id" : ObjectId("599261e8ec1d26149c8be16b"), "_created" : ISODate("2017-08-15T02:52:24.241Z"), "_modified" : ISODate("2017-08-15T02:52:24.241Z"), "name" : "人民法院诉讼资产网", "table_name" : "", "stat" : 1 }
{ "_id" : ObjectId("59b1f9e6758c6d23c9b4f4bf"), "_created" : ISODate("2017-09-08T02:01:10.380Z"), "_modified" : ISODate("2017-09-08T02:01:10.380Z"), "name" : "头条寻人", "table_name" : "", "stat" : 1 }
{ "_id" : ObjectId("59b647a4758c6d689c2ee835"), "_created" : ISODate("2017-09-11T08:21:56.824Z"), "_modified" : ISODate("2017-09-11T08:21:56.824Z"), "name" : "无讼网", "table_name" : "", "stat" : 0 }
{ "_id" : ObjectId("59c9e662758c6d75d554fbf3"), "_created" : ISODate("2017-09-26T05:32:18.503Z"), "_modified" : ISODate("2017-09-26T05:32:18.503Z"),
接着删除集合 mycol2 :
>db.mycol2.drop()
true
向集合中插入数据,insert与save都是向集合汇总插入数据。如果新增的数据中有主键,并且重复,则使用insert会报错,但是save会更改原来的数据。下面代码是向BizUser集合中插入数据的示例
db.BizUser.insert([{name:"user1",password:"123456"},{name:"user2",password:"123"}])
db.BizUser.save([{name:"user1",password:"123456"},{name:"user2",password:"123"}])
也可以先定义文档再往集合中插入
user1=({name:"user1",password:"111"})
db.BizUser.insert(user1)
更新文档,下面代码是把name为user1的第一条文档更新为{name:”cx”,age:22}
db.BizUser.update({name:"user1"},{name:"cx",age:22})
如果只是需要设置文档里的指定的一些域的值,则需要加$set关键字,下面代码是把name为user1的第一条文档的age值更更新为22,sex的值更新为”M”
db.BizUser.update({name:"user1"},{$set:{age:22,sex:"M"}})
如果是要更新所有符合查询条件的文档,则需要加上multi:true,下面代码是把所有age为22的文档中的age的值改为23
db.BizUser.update({age:"22"},{$set:{age:23}})
查看集合下的数据,不带任何参数则默认返回所有的数据
db.BizUser.find()
使用pretty()方法使显示的结果更美观
db.BizUser.find().pretty()
查询中的AND,在find()中传入多个键值对时,即会当作AND查询处理。下面代码是在BizUser集合中查找age为18并且sex为“M”的数据
db.BizUser.find({age:"18",sex:"M"})
查询中的OR,M哦能够DB中,OR查询语句以$or作为关键词。下面代码是在BizUser集合中查找age为18或者age为19的数据
db.BizUser.find(
{
$or:[
{age:"18"},
{age:"19"}
]
}
)
同时使用AND和OR,下面代码是在BizUser集合中查找sex为“F”,并且age大于30或者name等于user1的数据。 (表示大于、lt表示小于、表示小于等于、ge表示大于等于、$ne表示不等于)
db.BizUser.find(
{
sex:"F",
$or:[
{age:{$gt:30}},
{name:"user1"}
]
}
)
- $gt表示大于
- $lt表示小于
- $ge表示大于等于
- $le表示小于等于
- $ne表示不等于
db.BizUser.find({age:{$le:22}})
type的值:
- 1-双精度
- 2-字符串
- 3-对象
- 4-数组
- 5-二进制数据
- 7-对象ID
- 8-布尔类型
- 9-数据
- 10-空
- 11-正则表达式
- 13-JS代码
- 14-符号
- 15-有作用域的JS代码
- 16-32位整型数
- 17-时间戳
- 18-64位整型数
- 255-Min key
- 127-Max key
下面代码是查询name的类型为字符串的数据
db.BizUser.find({name:{$type:2}})
limit读取指定数量的数据记录,下面代码是读取BizUser集合中前10条记录
db.BizUser.find().limit(10)
skip读取时跳过指定数量的数据记录,下面代码是读取BizUser集合中第6条到第15条记录
db.BizUser.find().limit(10).skip(5)
sort对查询的结果进行排序,下面代码是读取BizUser集合中的数据,并按照age进行升序排序
1表示升序
-1表示降序
db.BizUser.find().sort({"age":1})
db.runCommand({usersInfo:"kanfa"}) usersInfo:用户名称
use kanfa #需要给创建用户的数据库
db.createUser(
{
user: "admin", #用户名
pwd: "admin", #密码
roles: [ { role: "read", db: "kanfa" } ]
}
)
#role 权限 db 指的数据库
权限类型readWrite 读写、 read 读
use admin
db.changeUserPassword("username", "xxx")
#授予角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ])
db.grantRolesToUser( "myuser" , [ { role: "dbOwner", db: "mydb" } ])
#取消角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ])
db.revokeRolesFromUser( "myuser" , [ { role: "readWrite", db: "mydb" } ])
</database></role></database></role>
mongodump -h 172.17.165.227:27017 -ukanfa -d -o /data/mongodb --authenticationDatabase=kanfa -h:指明数据库宿主机的IP -u:指明数据库的用户名 -p:指明数据库的密码 -d:指明数据库的名字 -c:指明collection的名字 -f:指明要导出那些列 -o:指明到要导出的文件名 -q:指明导出数据的过滤条件 --authenticationDatabase=kanfa 当前数据库开启auth 认证的用户
mongorestore -h 172.17.165.245 --port 27017 -uadmin -d kanfa kanfa --authenticationDatabase=admin -u:指明数据库的用户名 -p:指明数据库的密码 -d:指明数据库的名字 -c:指明collection的名字 authenticationDatabase=admin 当前数据库开启auth 认证的用户
mongoexport -h 172.17.165.227:27017 -uadmin --authenticationDatabase admin -d kanfa -c site_content --limit 300 -o site_content.bat -h:指明数据库宿主机的IP -u:指明数据库的用户名 -p:指明数据库的密码 -d:指明数据库的名字 -c:指明collection的名字 -f:指明要导出那些列 -o:指明到要导出的文件名 -q:指明导出数据的过滤条件 --limit 300 指定数据输出300行(文件太大可以使用)
mongoimport -h 172.17.165.245 --port 27017 -uadmin -padmin -d kanfa -c site_content site_content.bat --authenticationDatabase=admin 导入命令选项说明: -h:指明数据库宿主机的IP -u:指明数据库的用户名 -p:指明数据库的密码 -d:指明数据库的名字 -c:指明collection的名字 -f:指明要导入那些列
参考文档:
https://blog.csdn.net/a25115/article/details/40862293
https://docs.mongodb.com/manual/reference/program/mongoexport/
标签:mongodb
原文地址:http://blog.51cto.com/innocence/2094618