摘抄参考别人的MongoDB随笔记录

1.mongo:文档数据库,存储的是文档(Bson->json的二进制化)
  特点:内部执行引擎为JS解释器,把文档存储为bson结构,在查询时转为js对象,并且可以通过js语法来操作

2.mongo与sql数据库相比:

  sql数据库:结构化数据,定好了表格后,每一行的内容都是结构化的
  mongo:文档数据,表下的数据都可以有自己的特点(有自己独特的属性和值),存储更加灵活

3.下载安装(直接去官网下载)

  1.bin目录下文件解释:核心:
    mongo:客户端
    mongod:服务端
    mongos:路由器(集群分片的时候用)

    二进制导入导出:
    mongodump:导出bson数据
    mongorestore:导入bson数据
    bsondump:bson转为json
    mongolog:运行日志

    数据导出导入:
    mongoexport:导出容易识别json、csv、tsv格式文档
    mongoimport:导入json、csv、tsv

    运维工具:
    mongosniff、mongotop、mongostat:观察mongo运行状态(运维时使用)

    2.启动mongo服务:mongod --dbpath --logpath --fork(后台运行模式) --port 27017

  4.mongo常用指令

    1.基本入门指令
      show dbs 查看当前数据库
      use databaseName 选择数据库
      show tables\collections 查看表

      use databaseName 隐式创建数据库(如果存在则使用,不存在则在创建collection后创建此数据库,
      如果没有创建collection,就不会创建库)

      db.createCollection("collectionName") 直接创建表,不需要去定义结构(也可以隐式创建,在写入内容的时候自动创建)
      db.collectionName.insert({key:value}) 往表中插入数据(创建数据的时候,如果没有指定_id的值,数据库会默认指定)
      db.collectionName.find() 查看表中的数据

      db.collectionName.drop() 删除collection(删除成功返回true,否则false)

      db.collectionName.count() 统计数据条数
    2.基本CURD命令
      增:
        db.collectionName.insert({key:value}) 增加单个文档(key/value类型任意)

        db.collectionName.insert({_id:intValue,key:value}) 增加并指定id,不指定会自动生成

        db.collectionName.insert( 增加多个文档
        [
        {_id:1,key:value},
        {_id:2,key:value}
        ]
        )
      删:
        db.collectionName.remove({查询表达式,true\false}) 条件可以是特有的id、查询语句内容例如:{_id:10},就可以把这个文档_id:10删除
        如果不写条件内容,整个collection都被清空,true则找到多个匹配也只删除一行, false则找到多少删除多少
      查:find(),findOne()
        db.collectionNmae.find({查询表达式,}) 查询表达式也为json格式,如果不写则全部查询
        db.collectionName.find({查询语句},{key:1}) 查询某个属性,默认id也被查出来
        db.collectionName.find({},{key:1,_id:0}) 查询某个属性,不查询_id,要查询的为1,不查询的不写,不查_id的必须写0

      改:update({查询语句},新值,选项)
        db.collectionName.update({表达式},{新值},可选参数) 新值会覆盖掉原来全部的内容----1
        db.collectionName.update({表达式},{$set:{要修改的key->value}},{upsert:true}) 后面参数为可选,为true,则$set的内容存在则修改,不存在则添加,这样的话只修改需要修改的内容,其他不改变(修改某个列)--2

        修改时的赋值表达式:$set 修改某个值(有则)
        $unset 删除某个列key
        $rename 重名某个列key
        $incr 增长某个列

posted on 2018-10-09 16:55  前端z  阅读(172)  评论(0)    收藏  举报

导航