zoukankan      html  css  js  c++  java
  • MongoDB简单CRUD场景

       MongoDB简单CRUD命令操作

      (1)新建数据库:use 数据库名

      (2)显示所有数据库:show dbs;

      (3)新建集合(两种方式)

       隐式创建:在创建集合的同时往集合里面添加数据---db.c1.insert({name:"fuck",age:29});
       显式创建:db.createCollection()---db.createCollection("c2")

      (4)显示所有集合:show collections;

      (5)db命令:db命令表示当前操作的数据库

      (6)插入一对key-value:db.c1.insert({name:"fuck",age:22});当数据库没有集合c1时,mongodb会自动创建集合c1

      (7)查找某个集合中的所有数据:db.c1.find();

      (8)查找某个集合中的特定条件的数据:   

       单条件查询:db.c1.find({name:"fuck"})
       多条件查询:db.c1.find(name:"fuck",age:22)
       只关心个别元素的查询db.c1.find({},{"name":1,"_id":0})(即查出来只显示name这个字段)
       这里的1表示显示,0表示不显示

       (9)for循环插入数据:   

        for(var i=0;i<10000;i++)
       {
        db.c1.insert({name:"caonima",age:i})
       }

      (10)mongodb支持分页:db.c1.find()只会显示前20条数据

      (11)查询集合条数:db.c1.find().count()

      (12)查询符合条件的第一条文档:db.c1.findOne({name:"fuck"})

      (13)查询一个集合中age大于5的所有文档:

          db.c1.find({age:{$gt:5}})

          大于等于5

          db.c1.find({age:{$gte:5}})

            小于5

          db.c1.find({age:{$lt:5}})      

          小于等于5
          db.c1.find({age:{$lte:5}})      

          不等于5
            db.c1.find({age:{$ne:5}})

      (14)分页查询,查询众多结果中的第5到10条     

           db.c1.find().skip(5).limit(5);

         备注:第一个5为开始的序号,后面的5为开始序号后的条数

      (15)查询集合中的文档,$all主要用来查询数组中包含关系,查询条件中只要有一个不包含就不返回     

         db.c1.find({"b": { "$all" : [3,5]}});
           { "_id" : 11, "a" : "5", "b" : [ 5, 3, 7 ] }
         { "_id" : 111, "a" : 1, "b" : [ 3, 5 ] }

      (16)查询集合中的文档,$in,类似于关系型数据库中的IN

          db.c1.find({age:{$in:[12,45]}})

      (17)查询集合中不包含的文档,$nin,与$in相反

           db.c1.find({age:{$nin:[12,45]}})

      (18)查询集合中或条件的文档,$or,根据条件过滤掉某些数据

           db.c1.find({$or:[{name:"fuckyou"},{age:11}]})

      (19)查询集合中或条件相反的文档,$nor,根据条件过滤掉某些数据

         db.c1.find({$nor:[{name:"fuckyou"},{age:11}]})

      (20)查询集合中的文档,$exists,用于查询集合中存在某个键的文档或不存在某个键的文档,例如查询某集合中存在name键的所有文档,可以使用db.集合.find({name:{$exists:1}}),指存在键名为name的文档,exists:1表示真,指存在,exists:0表示假,指不存在。

      (21)mongodb中的游标:

          var x = db.c1.find()
          x.hasNext()
          x.next()

      (22)更新集合中的文档

           db.c1.update({age:33},{$set:{name:"caonima"}})
         将age为33的name改为caonima

      (23)更新集合语法

          db.collectionName.update(param1,param2,param3,param4)
          1、需要更新的条件
          2、更新的内容的对象
          3、如果没有符合条件的记录,是否新增一条记录。1为新增,默认值为0
          4、如果有多个符合条件的记录,是否全部更新,(默认值为0),如果全部更新,取值为1

      (24)展示mongo语句的扫描条数和查询耗时可调用explain()函数

          db.c2.update({"name":"fuck"}).explain()

      (25)更新集合中的文档,使用 $inc 将集合中name为user1的age加1,其它键不变, $inc表示使某个键值加指定的数值

          db.c2.update({name:"caonima"},{$inc:{age:2}});

      (26)更新集合中的文档, $unset 用来删除某个键

          db.c2.update({name:"laji"},{$unset:{age:1}},1,0);

          1、需要更新的条件
          2、更新的内容的对象
          3、如果没有符合条件的记录,是否新增一条记录。1为新增,默认值为0
          4、如果有多个符合条件的记录,是否全部更新,(默认值为0),如果全部更新,取值为1

      (27)删除orders集合的所有数据,集合还存在,索引都还存在

          db.c2.remove({})

      (28)根据条件删除数据

          db.c2.remove({age: 55})

      (29)删除集合,集合、索引都不存在了

          db.collection.drop()

      (30)更多操作详见db.help()

  • 相关阅读:
    STL源码剖析之_allocate函数
    PAT 1018. Public Bike Management
    PAT 1016. Phone Bills
    PAT 1012. The Best Rank
    PAT 1014. Waiting in Line
    PAT 1026. Table Tennis
    PAT 1017. Queueing at Bank
    STL源码剖析之list的sort函数实现
    吃到鸡蛋好吃,看看是哪只母鸡下的蛋:好用的Sqlite3
    cJSON
  • 原文地址:https://www.cnblogs.com/jiyukai/p/6979607.html
Copyright © 2011-2022 走看看