zoukankan      html  css  js  c++  java
  • MongoDB02

    基本概念:

    MangoDB数据库属于NoSQL(Not Only SQL),与之相对的就是RDBMS类型数据库,比如:mysql

    二者的既有联系又有区别:

    (1)数据库database:二者是一样的

    (2)集合Collection:相当于“表”table

    (3)文档document:相当于表中的“行”row

    (4)域field:相当于表中的“字段/列”column

    (5)_id:相当于表中的“主键”

    二、基本操作:

    1. 数据库database:

    (1)查看所有数据库:show dbs

    (2)查看当前数据库:db

    (3)创建/切换数据库:use 数据库名

    注:如果数据库不存在,则创建数据库,并切换至该数据库;如果数据库存在,则至切换至数据库

    > use database001
    switched to db database001

     (4)删除当前数据库:db.dropDatabase()

    注意:在 MongoDB 中,数据库、集合只有在内容插入后才会创建!!!

    就是说,创建数据库、集合(数据表)后要再插入一个文档(记录),数据库、集合才会真正创建。

    > use database002
    switched to db database002
    > db
    database002
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    > db.database002.insert({"name":"123"})
    WriteResult({ "nInserted" : 1 })
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    database002  0.000GB

    可以看到,在创建数据库database002后,第一次show dbs,没有显示出,有database002。当向database002中插入了数据{"name": "123"}后,show dbs,才显示有database002。

    2.集合Collection:

    (1)查看已有集合:show collections 或  show tables

    (2)创建集合:db.createCollection(name, options)

    参数:

    • name:要创建的集合名称
    • options(可选参数):指定有关内存大小及索引

    eg:

    不带options参数:

    > db.createCollection("col001")
    { "ok" : 1 }

     带options参数:

    > db.createCollection("col002", {capped: true, autoIndexId: true, size: 128, max: 10})
    { "ok" : 1 }

     在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

    > db.col003.insert({"name" : 123})
    > show collections
    col001
    col002
    col003

     (3)删除集合:db.集合名.drop()

    返回值:如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。

    eg:删除集合“col003”

    >db.col003.drop()
    true

     3. 文档document:

    (1)插入文档:

    • 插入数据:db.集合名.insert(文档, mutil=false)     
    • 插入单条数据:db.集合名.insertOne(文档)
    • 插入多条数据:db.集合名.insertMany(文档)

    eg: 

    #insertOne()插入单条数据:
    db.col001.insertOne({"name": "A", "age": 10, "status": "stu"})
    
    #insertMany()插入多条数据:
    db.col001.insertMany([{"name": "B", "age": 20, "status": "teacher"},
                 {"name": "C", "age": 30, "status": "stu"},
                 {"name": "D", "age": 40, "status": "stu"}
    ]) #insert()既可以插入单条数据,又可以插入多条数据
    db.col001.insert({"name": "E", "age": 50, "status": "stu"})
    db.col001.insert([{"name": "B", "age": 20, "status": "teacher"},
               {"name": "C", "age": 30, "status": "stu"},
               {"name": "D", "age": 40, "status": "stu"}
    )

    注:col001为集合名称,如果该集合不在该数据库中,则MangoDB会自动创建该集合并插入文档

    (2)删除文档:

    • 删除一个或多个数据:db.集合名.remove()
    • 删除一个数据:db.集合名.deleteOne() 
    • 删除多个数据:db.集合名.deleteMany()

    (3)修改更新文档:

    • 更新匹配到的一个或者多个文档:db.集合名.update()
    • 只更新匹配到的一个文档:db.集合名.updateOne()
    • 更新匹配到的所有文档:db.集合名.updateMany()
    • 最多只更新匹配到的一个文档:db.集合名.replaceOne()

    (4)查询文档:

    db.集合名.find(query, projection)

    
    
    
  • 相关阅读:
    Codeforces D
    Codeforces 899E
    Codeforces 898F
    算法笔记--字符串hash
    算法笔记--归并排序
    Codeforces D
    Codeforces 101628A
    牛客练习赛7 E 珂朵莉的数列
    算法笔记--树的直径 && 树形dp && 虚树 && 树分治 && 树上差分 && 树链剖分
    Codeforces 895C
  • 原文地址:https://www.cnblogs.com/tommyngx/p/11087753.html
Copyright © 2011-2022 走看看