• MongoDB基本使用方法


    mongo与关系型数据库的概念对比,区分大小写,_id为主键。

    一、数据库操作

    >show dbs或者show databases   #查看所有数据库

    >use dbname    #创建和切换数据库(如果dbname存在则切换到该数据库,不存在则创建并切换到该数据库;新创建的数据库不会显示,需要插入记录才会显示)

    >db.dropDatabase()  #删除数据库(需要先use进入到需要删除的数据库)

    二、集合操作

    >show collections或者show tables  #查看集合(需要先use进入数据库)

    >db.createCollection(集合名字,参数)   #创建集合

    >db.集合名.drop()   #删除集合

    三、文档操作

    在对文档做操作时,文档的字段名可以加引号,也可以不加引号。

    1.插入文档 db.集合名.insert(文档) 

    如果集合在该数据库中不存在会先创建集合;文档为字典形式,可以是单个的字典,也可以是由字典组成的列表

    >db.col.insert({
        title: 'MongoDB教程', 
        description: 'MongoDB是一个Nosql数据库',
        by: '菜鸟教程',
        url: 'https://www.runoob.com/mongodb/mongodb-tutorial.html',
        tags: ['mongodb', 'database', 'NoSQL'],
        likes: 100
    })
    
    >db.col.insert({
        title: 'MySQL教程', 
        description: 'MySQL是一个sql数据库',
        by: '菜鸟教程',
        url: 'https://www.runoob.com/mysql/mysql-tutorial.html',
        tags: ['MySQL', 'database', 'SQL'],
        likes: 200
    })

    插入文档也可以使用db.集合名.save(document) 命令,如果不指定 _id字段save() 方法类似于insert() 。

    2.查询文档

    db.集合名.find(查询条件,筛选列).pretty() ,查询条件和筛选列都通过字典形式表达

    查询条件筛选行:多个条件and查询:find({'k1':'v1','k2':'v2',...}),相当于关系型数据库中的where k1=v1 and k2=v2 and ...

    查询条件筛选行:多个条件or查询:find({ $or:[ {'k1':'v2'},{'k2':'v2'},...] }),相当于关系型数据库中的where k1=v1 or k2=v2 or

    删选列:{'_id':0,'k1':1,'k2':1...},1表示返回0表示不返回,_id如果不指定为0默认表示返回,相当于关系型数据库中的select field1,field2,... from 

                 在指定的所有列中,除了_id其他所有的值要么都为1,表示指定列返回未指定列不返回,要么都为0表示指定列不返回其他列返回

    限定返回结果的数量:limit(n),返回查询结果的前n条

    排序:sort({'key':1}),按照key字段排序,值为1则升序排,-1则降序排

    find是以非结构化的形式显示所有文档,加上pretty()以结构化的形式显示,对应的findOne方法返回第一个满足条件的文档

    > db.col.find({'title':'MongoDB教程'}).pretty()
    {
            "_id" : ObjectId("5d2e94f240515ad8a4693240"),
            "title" : "MongoDB教程",
            "description" : "MongoDB是一个Nosql数据库",
            "by" : "菜鸟教程",
            "url" : "https://www.runoob.com/mongodb/mongodb-tutorial.html",
            "tags" : [
                    "mongodb",
                    "database",
                    "NoSQL"
            ],
            "likes" : 100
    }

    mongo也支持逻辑查询,

     例如

    >db.col.find({'likes':{$gt:200,$lte:200}}).sort({'likes':1})

    db.集合名.distinct(k)

    获取所有不重复的k字段的值

    3.更新文档

    db.集合名.update(查询条件,更新操作,{upsert: <boolean>,multi: <boolean>,writeConcern: <document>})  

    • 更新操作:形式为{ $set:{key:value} }
    • upsert : 可选,表示如果要update的记录不存在是否将其插入为新记录,默认是false不插入,true则插入。
    • multi : 可选,表示是否更新所有满足条件的记录,默认是false只更新找到的第一条记录,true则将满足条件的所有记录全部更新。
    • writeConcern :可选,抛出异常的级别。
    > db.col.update({by:'菜鸟教程'},{$set:{likes:500}},{upsert:true,multi:true}) 
      WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

    db.集合名.save(文档)     

    如果不传入_id,则该方法类似insert(),会插入一个文档

    如果传入_id,则会对_id进行判断,如果要save的记录在原集合中存在,则按照内容对已存在的文档进行更新,如果不存在则进行插入也类似insert()。

    > db.col.save({
        "_id" : ObjectId("5d2e960d40515ad8a4693241"),
        title: 'Python教程',
        description: 'Python是一种解释型、面向对象、动态数据类型的高级程序设计语言',
        by: '菜鸟教程',
        url: 'https://www.runoob.com/python3/python3-tutorial.html',
        tags: ['Python', '开发', '编程'],
        likes: 1000
     })
     WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    db.col.save({
        "_id" : ObjectId("5d2e960d40515ad8a4693250"),
        title: 'HTML',
        description: '是一种用于创建网页的标准标记语言',
        by: '菜鸟教程',
        url: 'https://www.runoob.com/html/html-tutorial.html',
        tags: ['HTML', '前端', '编程'],
        likes: 300
    })
    WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0 })

    4.删除文档 db.集合名.remove(queryjustOne,writeConcern 

    • query :(可选)删除文档的条件,用字典形式表示。
    • justOne : (可选)如果设为 true 或 1,只删除一个文档,不设置该参数使用默认值 false,删除所有匹配条件的文档。
    • writeConcern :(可选)抛出异常的级别。
    >db.col.remove({by:'菜鸟教程'},1)
    WithResult({"nRemoved":1})
    >db.col.remove({by:'菜鸟教程'})
    WithResult({"nRemoved":2})


    db.col.remove({})删除所有文档

  • 相关阅读:
    第八节 JS运动基础
    第七节 DOM操作应用-高级
    第六节 DOM操作应用
    第五讲 DOM基础
    第二节 数学基础与语言学基础
    第一节 自然语言处理概论
    第0节 课程简述
    第四节 定时器
    基本概念
    常用命令
  • 原文地址:https://www.cnblogs.com/Forever77/p/11199289.html
Copyright © 2020-2023  润新知