· CRUD常用命令

  • db.name.insert({

    "":"",

    "":""

    ……

  }): 向集合名为name的集合中插入json格式的数据(集合不存在会自动创建)

  • db.name.find(): 查询name为name的集合中的数据

  • db.name.findOne(): 查询第一条数据

  • db.name.insertMany([

    {"":"","":"",……},

    {"":"","":"",……},

    ……

  ]): 插入多条数据

  • db.c2.find(

 

    {username:"wangshuo",userage:99},

    {username:1,_id:0}

 

 

  ):带条件投影查询(此案例为查询名为c2的集合中的username,不查询_id   /   筛选条件为:username为wangshuo、userage为99的数据   /   需注意字段名不加双引号)

  • find()查询方法内是可以写正则表达式的,写法和js相同

 

  • try{}catch{}: MongoDB可以写try catch命令

  • db.name.update(

    {forward:"0"},

    {"articleId":"6","likeNum":56,"unLikeNum":"7","forward":"0"}

  ): 完全修改(此案例为修改name为name的集合的articleId、likeNum、unLikeNum、forward四个属性,查询条件为forward=0)

  • db.lihua.update(   

    {articleId:"5"},   

    {$set:{likeNum:"1"}

  ): 部分修改(此案例为修改name为name的集合的likeNum = 1,查询条件为articleId=5)

  • db.lihua.update(

    {forward:"0"},

    {$set:{likeNum:"88"}},

    {multi:true}

  ): multi:true 修改多条(上面两个修改案例都只能修改符合条件的第一条)

  • db.name.remove({artcleId:"1"}):删除集合名为name的集合中artcleId为1的数据

  • db.name.remove({}): 不带条件,即删除集合内所有数据

  • db.name.count({"forward":"5"}): 查询条数,若不写条件就会查询集合中共有多少条数据

 

  • db.name.find().limit(5):分页查询前五条

  • db.name.find().skip(6): 跳过前六条数据,从第七条开始查询

  • db.name.find().sort({forward:-1}): 以转发量降序查询

 

  • db.name.find().limit(5).skip(2).sort({articleId:1}):从第三条开始分页查五条,以文章id升序(skip:跳过)

  • 执行顺序和sql逻辑不同: find条件 > sort > skip > limit

  • db.lihua.find({likeNum:{$gt:NumberInt(10)}}): 查询喜欢数大于10的所有数据(gt:大于、lt:小于、gte:大于等于、lte:小于等于、ne:不等于)

 

  • db.a_article.find({forward:{$in:[0,1,2]}}).sort({articleId:1}): in / nin操作符(此案例查询转发量in(0,1,2)的数据并以文章ID正序排序)

  • db.a_article.find({

    $and:[

      {likeNum:{$gte:NumberInt(20)}},
      {likeNum:{$lt:NumberInt(200)}}
    ]
  
}): and操作符,链接多个条件(此案例中查询喜欢数大于等于20并且小于200的数据)

  • db.a_article.find( {

    $or:[

      {likeNum:{$gte:NumberInt(20)}},

      {author:/花/}

    ]

  } ): or操作符,连接多个条件(此案例中查询喜欢数大于等于20或者作者名包含字符花的数据)