1.创建数据库,使用命令 use 数据库名称 ,如:use mydb1
2.删除当前数据库,使用命令 db.dropDatabase()(在哪个数据库下面就删除哪个)
3.查看所有数据库,使用命令 show dbs
4.查看当前所在数据库,使用命令 db
5.查看当前数据库中所有的集合,使用命令 show collections 或使用show tables
6.创建集合有两种方式,显示创建和隐式创建
6.1 显示创建可以使用命令 db.createCollection(“集合名称")
6.2 隐式创建可以使用命令 db.集合名称.insert({}),指创建集合并同时向集合中插入数据,例如:
db.customer.insert({name:”jack”})
7.向集合添加文档,使用命令 db.集合名称.insert({}),例如:db.user1.insert({name:”jack”,age:20})
8.使用js脚本向集合添加文档例如:
在mongodb中可以使用js脚本, 例如:用脚本直接插入10000条数据.
for(var i=1;i<=10000;i++){
db.c1.insert({name:"dsadasd",age:i})
}
9.删除集合中的文档,使用命令 db.集合名称.remove({删除条件}),
不加删除条件为删除集合中的所有文档,例如(删除c1集合中的所有文档):db.c1.remove()
删除c1集合中name为user1的文档,例如: db.c1.remove({name:”user1”})
10.查询集合中的文档,可以使用命令 db.集合名称.find({条件}),
查询第一个文档) db.集合名称.findOne()
11.查询集合中的文档,返回某些特定的键值
db.col.find({},{key:1})---->(_id默认请情况下显示)
第一个{}放 where 条件,为空表示返回集合中所有文档
第二个{}指定那些列显示和不显示 (0表示不显示 1表示显示)
db.c1.find({name:'user1'},{age:1}) ---->查询出name为user1的age的值(此处会有_id)
db.c1.find({name:'user1'},{age:1,_id=0}) ---->查询出name为user1的age的值(此处不会有_id)
12.查询集合中的文档 ,使用条件表达式(<, <=, >, >=,!=)
操作 | 格式 | 范例 | RDBMS中的类似语句 |
等于 | {<key>:<value>} | db.c1.find({'shuxue':20}).pretty() | where 'shuxue'=20 |
小于 | {<key>:{$lt:<value>}} | db.c1.find({'shuxue':{$lt:80}}).pretty() | where 'shuxue' <80 |
小于或等于 | {<key>:{$lte:<value>}} | db.c1.find({'shuxue':{$lte:20}}).pretty() | where 'shuxue' <=20 |
大于 | {<key>:{$gt:<value>}} | db.c1.find({'shuxue':{$gt:40}}).pretty() | where 'shuxue' >40 |
大于或等于 | {<key>:{$gte:<value>}} | db.c1.find({'shuxue':{$gte:10}}).pretty() | where 'shuxue' >=10 |
不等于 | {<key>:{$nt:<value>}} | db.c1.find({'shuxue':{$nt:40}}).pretty() | where 'shuxue' !=40 |
13.查询集合中的文档 ,统计(count)、排序(sort)、分页(skip、limit)
db.c1.count() //统计c1集合中的数据总数
db.c1.find().count();//统计c1集合中的数据总数和上一个一样
db.c1.find({age:{$lt:5}}).count();//统计c1集合中 age<5 的数据总数
db.c1.find().sort({age:1}); 降序-1,升序1//将c1集合中的数据按照age字段的升序排列
db.c1.find().skip(2).limit(3);//从2【0开始】开始的后面3条记录
db.c1.find().sort({age:-1}).skip(2).limit(3);//age降序排列,从2开始的后面3条数据
14.查询集合中的文档
$all主要用来查询数组中的包含关系,查询条件中只要有一个不包含就不返回(列表中只有都匹配到才返回)
实例($all全部匹配):
db.c1.insert({"name":'wz',"post":[3,4]}) //c1中插入一条文档
db.c1.find({post:{$all:[3,4]}}) //查询c1中post中有3,4的文档(必须存在3和4)
db.c1.find({post:{$all:[2,3,6]}})//统计c1集合中 post中存在1,2,3,6的文档----->此处没有匹配到
15.查询集合中的文档 ,$in,类似于关系型数据库中的IN(承接上面的例子)
db.c1.insert({"name":'wz',"post":[2,3,4]}) //再在c1中插入一条文档
db.c1.find({post:{$in:[3,4]}}) //查询c1中post中有有3或者有4文档----->此时后有两条记录
db.c1.find({post:{$in:[1,2,3,6]}})//统计c1集合中 post中存在1,2,3,6的文档----->显示两条(因为都有3)
16.查询集合中的文档 ,$nin,与$in相反(不包含)
db.c1.find({post:{$nin:[3,4]}}) //查询在c1中post值不包含3,4的文档
17.查询集合中的文档 $or,相当于关系型数据库中的OR,表示或者的关系:
例如查询name为user2或者age为3的文档,命令为:db.c1.find({$or:[{name:”user2”},{age:3}]})
18.查询集合中的文档 ,$nor,表示根据条件过滤掉某些数据,例如查询name不是user2,age不是3的文档,命令为:db.customer.find({$nor:[{name:”user2”},{age:3}]})
19.查询集合中的文档,$exists,用于查询集合中存在某个键的文档或不存在某个键的文档,
例如查询c1集合中存在name键的所有文档,可以使用 db.c1.find({name:{$exists:1}}),
$exists:1表示真,指存在,$exists:0表示假,指不存在
20.查询集合中的文档 ,类似于关系型数据库,mongodb中也有游标的概念
var x=db.score.find() //将c1集合赋值给x
x.hasNext()----->//返回true
x.next()------>逐条现实文档内容
21.更新集合中的文档,语法如下:
db.collection.update(criteria,objNew,upsert,multi)
参数说明:
criteria:用于设置查询条件的对象
objNew:用于设置更新内容的对象
upsert:如果不存在update的记录,是否插入objNew:true/1为插入,默认是false/0,不插入
multi:默认是false,只更新找到的第一条记录,参数为true,就把按条件查出来多条记录全部更新
默认情况下,只会更新第一个符合条件的记录
一般情况下后两个参数分别为0,1 ,即:db.collection.update(criteria,objNew,0,1)
22.更新集合中的文档,将集合中name为user1的文档改成name为jack
实例:db.c1.update({name:"user1"},$set:{name:"jack"})
23.更新集合中的文档, $set 用来指定一个键的值,如果这个键不存在,则创建它。
例如:给name为user1的文档添加address,可以使用命令:
db.c1.update({name:”user1”},{$set:{address:”bj”}},0,1)
将name为user1的文档修改address为tj,其它键值对不变,命令为:
db.c1.update({name:”user1”},{$set:{address:”tj”}},0,1)
24.更新集合中的文档,使用 $inc 将集合中name为user1的age加1,其它键不变, $inc表示使某个键值加减指定的数值(正数为加,负数为减)
实例:db.c1.update({name:”user1”},{$inc:{age:1}},0,1)
25.更新集合中的文档, $unset 用来删除某个键,例如删除name为user1的文档中的address键,可以使用命令:
实例:db.c1.update({name:”user1”},{$unset:{address:1}},0,1)
26.删除集合中的文档例如删除name为user1的文档,可以使用命令:
db.collection.remove( <query>, { justOne: <boolean>} )
query:(可选)删除的文档的条件
justone:(可选) 如果是true,只删除一个文档,默认为false,能够查到就都删除
实例:db.c1.remove({name:”user1”}) //删除所有name为user1的文档
db.c1.remove({name:”user1”},1) //删除查到name为user1的第一条文档
db.info.remove() <---> truncate() //删除所有的集合中的记录
27.创建普通索引,使用命令 db.collection.ensureIndex({key:1})
查看关于索引的相关信息,使用命令 db.collection.stats()
查看查询使用索引的情况,使用命令 db.collection.find({key:value}).explain()
删除索引,使用命令 db.collection.dropIndex({key:1})
删除集合,也会将集合中的索引全部删除
28.创建唯一索引,使用命令 db.collection.ensureIndex({key:1},{unique:true})
查看关于索引的相关信息,使用命令 db.collection.stats()
查看查询使用索引的情况,使用命令 db.collection.find({key:value}).explain()
删除索引,使用命令 db.collection.dropIndex({key:1})
删除集合,也会将集合中的索引全部删除