zoukankan      html  css  js  c++  java
  • MongoDB笔记2018.2.6

    MongoDB笔记2018.2.6

    1.先简单接触下linux,大部分教程是在linux环境下的操作,要不然看不懂教程
    2.找教程或视频 教程推荐菜鸟教程

    学习MongDB前需要懂一定的Mysql语法,后面会用到

    MongoDB的数据库、集合、键值对有就用,没有就insert()时候自动新建【只要字典格式对,不管有没有键都能插入】

    严格区分大小写

    1.常用命令

    1. 查看列表 show dbs
    2. 转到(或自动创建) use testdatabase
    3. 查看当前数据库里的集合 show tables / show collections
    4. 删除当前数据库 db.dropDatabase()
    5. 查看当前集合列表 show tables
    6. 查看当前集合里面的内容 db.jihe1.find()
    7. 删除当前集合(和里面的数据) db.jihe1.drop()
    8. 删除集合里的数据 db.jihe1.remove(参数) 【必须带参数,{}表示全部】

    2.插入数据【注:只有新建的意思,并没有修改或追加的功能】

    向集合插入数据 db.col.insert(document)
    我觉得有必要写一个例子,不想看就略过

    //insert插入数据项和数据【只能新建,不能追加和更新】
    ----------方式1--------------------------------------------
    > document=({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
    });
    //插入col这个集合中(没有就新建,有就更新)
    > db.col.insert(document)
    WriteResult({ "nInserted" : 1 })
    > 
    ----------方式2--------------------------------------------
    > var document = db.collection.insertOne({"a": 3})
    > document
    {
            "acknowledged" : true,
            "insertedId" : ObjectId("571a218011a82a1d94c02333")
    }
    
    #  插入多条数据
    > var res = db.collection.insertMany([{"b": 3}, {'c': 4}])
    > res
    {
            "acknowledged" : true,
            "insertedIds" : [
                    ObjectId("571a22a911a82a1d94c02337"),
                    ObjectId("571a22a911a82a1d94c02338")
            ] }
    

    更新集合/文档 update() 和 save() 【追加,清空,删除等】【这里比较复杂,建议直接去菜鸟教程查看】

    updata()

    db.collection.update(
    <query【查询语句,类似sql update查询内where后面的】>,
    <update【update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的】>,
    {
        upsert: <boolean>,
        //可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
        multi: <boolean>,
        //可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
        writeConcern: <document>
        //可选,抛出异常的级别。
    }
    )
    

    save()

        db.collection.save(
    <document>,
    {
        writeConcern: <document>
    }
    )
    

    3.更新集合 update()【改】

    db.集合名.update({'id':2},{'$set':{'title':'YourBlog'}})
    //db.集合名        条件  $set(执行方法:增加或修改指定的键值对),,,【这里修改了‘YourBlog’】
    1. $set 增加或修改指定的键值对
    2. $unset 删除指定额键值对
    3. $inc 增减指定的键的值,符合条件的第一个【常用于修改id值】
    4. $pop
    5. $push
    6. $pull
    4. ...【还有几个操作方法】
    ---
    

    很多$*..能加参数 默认是false 改为 true 是当没找到时新增

            例:
            db.blogg.update({'id':3},{'size':10},true)  【true是第三个参数】
            //更新id是3的 没找到的话就新建(这个参数好像是可有可无)
            db.blogg.update({'id':1},{'$set':{'commet':'mm'}},false,true)
            //第四个参数是true的话就更新id为1的所有的,,,【是用false挤过去的??】
    

    删除集合

    db.集合名.drop() 删除集合
    db.集合名.remove() 删除集合里面的内容【没内容的集合和不存在是一样的,所以这两个是一样的】
    

    4.查询集合内的数据 find() 【查】

    db.集合名(表).find() //查表内全部信息【括号写条件】
    db.集合名.find('id':1) //查id=1的(全部信息)
    db.集合名.findOne()    //分步查询,以多行形式展现
    db.集合名.findAll()    //查询,字符串形式一行展示
    

    5.在Python中使用 MongoDB

    import pymongo
    client =pymongo.MongoClient('localhost',27017)
    db = client.studentdb
    mylist=[{'name':'学生a','年龄':'12'},{'name':'学生B','爱好':'aaa'}]    #写字典格式的数据
    db.user.insert_many(mylist) #将mylist里面的信息插入user集合(表)
    for item in db.user.find():
        print(item)
    

        import pymongo
        #pymongo 的增删改查【精简版】
        client =pymongo.MongoClient('localhost',27017)
        db = client.ku1
        mylist=[{'name':'学生a','年龄':'12'},{'name':'学生B','爱好':'aaa'},{'key1':'value1'}
                ,{'key2':'value1'},{'key3':'value1'}]    #写字典格式的数据
    
        #查询全部
        # db.user.find_one(mylist)
        # for item in db.user.find():
        #     print(item)
    
        #更新一条(没有的话就创建一个)
        db.jihe1.insert_many(mylist) 
        db.jihe1.update({'key1':'value1'},{'$set':{'key2':'value2','key3':'vlue3'}})
        # 删除
        # db.jihe1.remove({'key1':'value1'})
    
        # db.jihe1.remove()
    
        #输出结果
        # for item in db.jihe1.find():
        #     print(item)
    
        #输出集合里面的条数
        # tiaoshu = db.jihe1.find().count()
        # print(tiaoshu)
  • 相关阅读:
    20145120 《Java程序设计》第5周学习总结
    20145120 《Java程序设计》第4周学习总结
    20145120 《Java程序设计》第3周学习总结
    20145120 《Java程序设计》第2周学习总结
    20145120 《Java程序设计》第1周学习总结
    you build it,you run it
    我们为什么要研究docker
    他们为什么选择前端工程化,而我又是基于什么考虑的
    Jboss性能调优
    理解Tomcat架构、启动流程及其性能优化
  • 原文地址:https://www.cnblogs.com/hellangels333/p/8421707.html
Copyright © 2011-2022 走看看