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})
    删除集合,也会将集合中的索引全部删除