• mongodb(一)



    文档是 MongoDB 的核心,类似于 SQLite 数据库(关系数据库)中的每一行数据。多个键及其关联的值放在一起就是文档。在 Mongodb 中使用一种类 json 的 bson 存储数据,bson 数据可以理解为在 json 的基础上添加了一些 json 中没有的数据类型。
        例:
            {"company":"Chenshi keji"}
            
    元数据
        数据库的信息存储在集合中,他们统一使用系统的命名空间:DBNAME.system.* DBNAME 可用 db 或数据库名替代
            DBNAME.system.namespaces :列出所有名字空间
            DBNAME.system.indexs :列出所有索引
            DBNAME.system.profile :列出数据库概要信息
            DBNAME.system.users :列出访问数据库的用户
            DBNAME.system.sources :列出服务器信息


    创建数据库
        范例:进入 MongoDB 命令行操作界面之后,进行如下操作:
            > use Chenshi
            switched to db Chenshi
        
        您可以使用 db 命令查看您当前选择的数据库
            > db
            Chenshi

        您也可以通过使用 show dbs 命令查看所有的数据库
            > show dbs

        在这条命令之后您刚才创建的 Chenshi 不会显示,这只有在向数据库中插入了数据之后才能显示

    删除数据库
        语法:db.dropDatabase()
        假设刚才我们使用语句 db.computer.insert({"name":"killer"}) 对数据库 Chenshi 进行了数据插入操作
            > show dbs      #显示当前系统中的所有数据库
            > use Chenshi   #转到Chenshi数据库
            switched to db Chenshi
            > db.dropDatabase()
            {"dropped":"Chenshi","ok":1}
            > show dbs

    集合
        集合就是一组文档的组合,就相当于是关系数据库中的表,在 MongoDB 中可以存储不同的文档结构的文档。 例:
            {"company":"Chenshi keji"} {"people":"man","name":"peter"}    
            
        创建集合
            语法:
                db.createCollection(name,options)
            参数描述:
                name:创建的集合名称
                options:是一个作为初始化的文档(可选)
            范例:
                > db.createCollection("killer")            #无参数
                { "ok" : 1 }
                > show collections
                killer
                system.indexes
                > db.createCollection("killer2", { capped : 1, autoIndexID : 1, size : 6142800, max : 10000 } )            #带参数
                { "ok ": 1 }
            参数描述:
                capped:类型为 Boolean,如果为 true 则创建一个固定大小的集合,当其条目达到最大时可以自动覆盖以前的条目。在设置其为 true 时也要指定参数大小;
                autoIndexID:类型为 Boolean,默认为 false,如果设置为 true,则会在 _id field.s 上自动创建索引;
                size:如果 capped 为 true 需要指定,指定参数的最大值,单位为 byte;
                max:指定最大的文档数。 在 Mongodb 中也可以不用创建集合,因为在创建文档的时候也会自动的创建集合。

        删除集合
            语法:db.COLLECTION.drop()
            操作实例:
                > use Chenshi
                switched to db Chenshi
                > show collections
                killer
                killer2
                system.indexes
                > db.killer.drop()
                true
                > show collections
                killer2
                system.indexes
            删除成功
            --注意:当您要删除指定的集合时,用您想要删除的集合名称替代 COLLECTION 即可

        插入文档
            语法:db.COLLECTION_NAME.insert(document)
            操作实例:
                > userdoc1=({"user_id":1,"name":"cloud","state":"active","actor":"user","e-mail":"test@qq.com","VM_num":2,"time":[{"date":"2014-08-12","hour":"10:53 PM"}] })        
                > userdoc2=({"user_id":2,"name":"testadmin","state":"active","actor":"admin","e-mail":"test@qq.com","VM_num":2,"time":[{"date":"2014-08-11","hour":"06:34 AM"}] })    
                > doc1=({"name":"peter","position":"teacher"})        #先定义文档
                > use Chenshi
                switched to db Chenshi
                > db.killer.insert(userdoc1)
                WriteResult({"nInserted":1})
                > db.killer.insert(userdoc2)
                WriteResult({"nInserted":1})
                > db.killer.insert(doc1)
                WriteResult({"nInserted":1})
            插入文档成功,当然也可以直接将文档的内容作为函数的参数直接替代 document。
            
            语法:save()
                > db.users.save([
                ... { name : "jam",
                ... email : "jam@qq.com"
                ... },
                ... { name : "tom",
                ... email : "tom@qq.com"
                ... }
                ... ])

    更新文档
        语法:db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATED_DATA)
        操作实例:
            > db.killer.update({"user_id":2,"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}})
            WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})
            > db.killer.find()
            
            将 user_id=2 的文档的 e-mail 改为 group@qq.com
            第一个大括号内容标示查找条件,第二个大括号内容则表示更新后的数据
            默认的 update 函数只对一个文档更新,如果想作用所有文档,则需要加入 multi:true
        操作实例:
            db.killer.update({"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}},{multi:true})


    替换已存在的文档
        语法:db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
        操作实例:
            >db.shiyanlou.save({"_id":ObjectId("53ea174ccb4c62646d9544f4"),"name":"Bob","position":"techer"})
            WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})
        这里的 _id 对应的是要替换文档的 _id。
        跟 insert 差不多,但是 update 更好用。

    删除文档
        语法:db.COLLECTION_NAME.remove(DELECTION_CRITERIA)
        操作实例:
            > db.shiyanlou.remove({"name":"Bob"})
            WriteResult({"nRemoved":1})
        其实 remove 函数的参数跟 update 函数的第一个参数一样,相当于查找条件,注意,不要误删!
        删除后可以用查找命令确认数据:
            > db.killer.find()
            
            
    createCollection():创建集合

    db.COLLECTION.drop():删除集合

    db.COLLECTION_NAME.insert(document):插入文档

    db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATED_DATA):更新文档

    db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA}):替换已存在的文档

    db.COLLECTION_NAME.remove(DELECTION_CRITERIA):删除文档

  • 相关阅读:
    Idea安装Scala插件(转)
    serialVersionUID的作用(转)
    [转]学习win10的bash使用ssh连接远程服务器
    [转]使用 Travis CI 部署你的 Hexo 博客
    【转】H5
    【转】Virtual DOM
    【转】hexo博客图片问题
    【转】V8 之旅: 垃圾回收器
    关于react-redux中Provider、connect的解析
    【转】webpack4
  • 原文地址:https://www.cnblogs.com/mysterious-killer/p/9881811.html
Copyright © 2020-2023  润新知