01、建立连接 :mongo 

 

02、显示所有数据的列表 : show dbs

 

03、创建数据库[或切换到某个数据库] : use jtdb   

  (如果想把数据库创建成功,必须要插入一条数据,数据库中不能直接插入数据,只能往集合(cellections)中插入数据,

  创建集合:db.createCollection("user")

 

04、查看当前数据库名称 : db

 

05-1、往user集合中插入数据 :db.user.insert({"name":"abc","age":"20"}) 

     插入多条数据 :db.user.insertMany([{name:"孙悟空",age:20},{name:"沙悟净",age:22},{name:"猪八戒",age:18}]) 

db.user.insertMany(
    [
        {name:"孙悟空",age:20},
        {name:"沙悟净",age:22},
        {name:"猪八戒",age:18}
    ]
)

 

 05-2、用 for 循环插入多条数据:跟 js 语法差不多

for(var i = 1; i <=100;i++) {
    db.user.insert({name: "jty"+i,age:i})
}

 

 删除:

  06-1:删除数据库 : db.dropDatabase()

  06-2:删除 user 集合 : db.user.drop()  

  06-3:删除性别为 male 的数据 : db.user.deleteMany({sex:"male"}) 

  06-4、清空集合里的数据:db.user.deleteMany({}) 

      也可以用 db.user.remove({}) 不过这个旧方法,官方不推荐了。

  06-5、删除猪八戒和孙悟空的数据:db.user.deleteMany({$or:[{name:"猪八戒"},{name:"孙悟空"}]})

   【注:删除集合或者清空集合里边的数据是不会释放空间的,可以参考  或 】


 

更改:

  07-1、更改集合名词:  

 

     07-2、更改数据,只修改第一条

db.user.update(
    {'name':'卷帘大将'},
    {
        $set:
        {'name':'沙僧',age:25}
    }
)

 

     07-3、更改数据,修改多条,在后面添加  {multi:true}

db.user.update(
    {'name':'沙僧'},
    {
        $set:
        {'name':'卷帘大将',age:30}
    },
    {multi:true}
)

   

  07-4、save() 方法更新一条数据,

      如果 【_id 存在且相同】  的话,就执行更新;

      如果 【_id 存在但不相同】 的话,就添加;

      如果 不包含 _id 参数,则添加新数据。

db.user.save(
        {
            "_id" : ObjectId("5fbdcfdb836f5814526c25b9"),
            "name" : "唐僧",
            "age" : 94, 
            "sex" : "male" 
        }
)

 

 

 查找:

  08-1、查找所有:db.user.find()

  08-2、格式化方式查看:db.user.find().pretty()

  08-3、条件查找【查找小于20的】 db.user.find({age:{$lt:20}})    

  •   (>) 大于 - $gt
  •   (<) 小于 - $lt
  •   (>=) 大于等于 - $gte
  •   (<= ) 小于等于 - $lte
  •                 ( != ) 不等于 - $ne
08-4、查看已存在的集合:show collections

 08-5、查找name,并过滤掉name中相同的数据 : db.user.distinct("name")

 08-6、查找age=22的数据 : db.user.find({"age"=22})  

   08-7 、查找猪八戒和孙悟空的数据:
db.user.find(
        {
            $or:
                [
                    {name:"猪八戒"},
                    {name:"孙悟空"}
                ]
        }
    )
08-8 、查找 (age<=20且sex=male)或(age>20且sex=female)的数据:
db.user.find(
        {
            $or:
                [
                    {age:{$lte:20},sex:"male"},
                    {age:{$gt:20},sex:"female"}
                ]
        }
    )

  08-9、AND 和 OR 联用:在  age=>20  的范围中查找 【(name为沙僧,sex为male)或者 (sex为female)】的数据

db.user.find(
    {
        age:{$gte:20},
        $or:
            [
                {name: "沙僧",sex:"male"},
                {sex:"female"}
            ]
    }
)

   

  08-10、查找   【20<=age<=40 且不等于 30 ,sex为male 】 的数据 :

db.user.find(
    {
        age:{$gte:20,$lte:40,$ne:30},
        sex:"male"
    }
)

   

  08-11、limit() 查询两条数据:db.user.find().limit(2)

       limit() 中部加数字则代表查询所有数据。

  08-12、skip() ,参数是数字类型,默认为0,表示跳过多少条数据;如果没有参数就代表跳过0条:

      跳过前面两条,从第三条开始,展示到第六条。 db.user.find().limit(4).skip(2) 

    08-13、 skin().limit() 配合,做出分页效果。

var pageNumber = 1,pagesize = 10;
db.user.find().skip((pageNumber-1)*pagesize).limit(pagesize)

 

   08-14、查看数据的总条数:db.user.count()

   08-15、排序查看数据:1 表示升序,-1 表示降序

     按年龄降序,显示整条数据: db.user.find().sort({age:-1})

     按年龄降序,显示名称: db.user.find({},{name:1,_id:0}).sort({age:-1})

         *   skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。