美文网首页
MongoDB应用

MongoDB应用

作者: SodaSea | 来源:发表于2017-08-22 18:28 被阅读0次

    常用指令(Mongo shell)

    show dbs;//显示已有数据库,空数据库不显示
    db.dropDatabase(); //删除当前数据库,需要先用use命令切换,db表示当前数据库,没有db.默认删除test 数据库
    show collections; //查看已有collection
    db.<collection>.drop();//删除集合和其索引
    db.<collection>.remove();//删除集合
    

    新建collection

    db.createCollection("<name>");//不带选项的
    db.newcollection.insert({"name":{"xiaoming"}});//相当于新建名为newcollection的collection
    db.newcollection.save(<doc>);//同insert对比 save函数实际就是根据参数条件,调用了insert或update函数.如果想插入的数据对象存在,insert函数会报错,而save函数是改变原来的对象;如果想插入的对象不存在,那么它们执行相同的插入操作
    怎么判断是不是同一个obj存在,根据的是_id
    db.<collection>.insert//查看insert源码
    

    查询doc

    db.<collection>.findOne()
    db.<collection>.find()
    db.<collection>.find().pretty();//JSON格式化
    
    条件查询
    db.<collection>.find({"count":{$lt:10}})//count 字段小于10,类似关键字还有gt,lte,gte,ne
    
    db.<collection>.find({"count":{$lt:10}, "count":{$gt:5}})//AND实现
    
    db.<collection>.find(
      {
        $or:[{key1:value1},{key2:value2}]
      }
    )
    

    更新doc

    db.<collection>.update({'count': '5'},{$set:{'result': 'true'}})//默认只更新一个doc
    db.<collection>.update({'count': '5'},{$set:{'result': 'true'}},{multi: true})//默认只更新一个doc
    

    删除doc

    db.<collection>.remove({"count":"5"},1);//删除第一个count为5的doc
    

    映射Projection

    db.<collection>.find({"count": "5"},{_id:0,"count":1});//1表示映射该字段,0相反,默认都映射
    

    限制记录Limit和Skip

    db.<collection>.find({'count':'1'}).limit(1).skip(1)
    

    排序sort

    db.<collection>.find({}).sort({"count":1})//根据字段count升序排列
    

    索引

    db.<collection>.ensureIndex({"count":1})//1表示索引排列顺序,选项包括unique
    

    聚合

    select by_user, count(*) from mycol group by by_user
    这是SQL语法 ,用来对同by_user字段聚合并计数
    在Mongo等价于
    db.<collection>.aggregate([$group:{_id:"$by_user",num_tutorial:{$sum:1}}])

    db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])//like 总数
    

    聚合与管道

    管道的概念

    db.tgateinfos.aggregate([{$project:{Type: 1,_id:0}}])//结果{ "Type" : 51 }
    

    相关文章

      网友评论

          本文标题:MongoDB应用

          本文链接:https://www.haomeiwen.com/subject/rpyldxtx.html