mongoDB杂项

  1. 密码更改:db.changeUserPassword('tank2','test');

     

  2.  在这里我遇到了一个问题:
        mongod: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
      所以安装curl
        root@debian:/home/csr# apt-get install curl

     

  3. monDB时间格式 处理方式   new MongoDB\BSON\UTCDateTime(Carbon::createFromFormat('Y-m-d H:i:s', '2018-06-15 12:12:12')->endOfDay());
    /* 返回mongoDB的时间类型 */
    function mongoDate($date){
       return new MongoDB\BSON\UTCDateTime($date);
    }
    composer加载mongodb 在mongodb.json中添加语句 "jenssegers/mongodb":"~3.2"

     

  4. mongDB数据组成:数据包 - 集合 - 文档

     

  5. 游标的概念
    var aa = db.集合名.find();
    当输出aa之后,在此输出的时候,aa就没有值了
    为了是aa中的数值一个一个的输出,可以使用循环的方式(这里可以理解成游标),或者可以理解成 查询构造器(将要查的数据先查询出来,需要的时候调用)
    aa.forEach(x){
    print_r(x.元素)
    }

     

  6. 性能分析
    性能分析函数(explain)
    使用方式 db.集合名.find({条件}).explain()

     

  7. 索引
    db.集合名.ensureIndex({"key":1})  使用了ensureIndex在name上建立了索引。”1“:表示按照name进行升序,”-1“:表示按照name进行降序。
    唯一索引只能在集合为空的时候才会生效 如果存在数据,不能生效
    db.集合名.ensureIndex({'key':1},{'unique':true})
    联合索引
    db.集合名.ensureIndex({'key1':1,'key2':1}) 
    db.集合名.ensureIndex({'key2':1,'key1':1})
    建立上面两个索引之后,在搜索的时候系统会自动选择其中一个
    如果想要执行指定的一个,可使用以下方式
    db.集合名.find({'key1':'value1','key2':'value2'}).hint({'key1':1,'key2':1})
    删除指定索引db.集合名.dropIndexes("getIndexes中的name")
posted @ 2019-05-28 18:00  php、凯  阅读(294)  评论(0编辑  收藏  举报