zoukankan      html  css  js  c++  java
  • Mongodb的简单使用

    一. 基本概念

    数据库(database)

    集合(collection)

    文档(document)

    三者关系:数据库中包含多个集合,每个集合又包括多个文档

    在Mongodb中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合

    二. 基本指令

    show databases(dbs) :  显示当前所有数据库

    use 数据库名: 进入到指定的数据库中

    db:表示的是当前所处的数据库

    show collections:显示数据库中所有的集合

    三. 数据库的CRUD(增删改查)的操作

    1  向数据库中插入文档(增)

    db.<collection>.insert(doc)  :   向集合中插入一个或多个文档

    当向集合插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加_id(该属性作为文档的唯一标识,在mysql中称为主键),_id我们可以自己指定,如果我们指定了数据就不会再添加了,如果自己指定_id,也必须确定它的唯一性

    例:

    向test库中的stus集合中插入一个新的学生对象

      db.stus.insert({name:"孙悟空", age:"18", gender:"男"})

    向test库中的stus集合中插入多个新的学生对象

      db.stus.insert([

       {name:"张三", age:"18"},

       {name:"李四", age:"20"}

      ])

    2.  查询

    (1)db.<collection>.find()

    find()用来查询集合中所有符合条件的文档,其可以接受一个对象作为条件参数

    {}表示查询集合中所有文档,如:db.<collection>.find({})

    注意,find()返回的是一个数组

    {属性:值}  查询属性时指定值的文档  如db.stus.find({name: “张三”})

    (2)db.<collection>.findone():

    用来查询集合中符合条件的第一个文档

    findone()返回的是一个文档对象

    (3)db.<collection>.findmany():

       用来查询集合中符合条件的所有文档

    3. 修改

    db.collection.update(查询条件,新对象),此处的新队向表示要修改的新内容

    (1)update()默认情况下会使用新对象来替换旧的对象

    如:db.stus.update({name:"张三"}, {age:33}),此语句会将name为张三的文档修改为只包括age:33的文档,并不会在源文档基础上只修改年龄属性

    (2)如果要修改制定属性,而不是替换,需要使用“修改操作符”来完成修改

         $set: 可以用来修改文档中的指定属性

      $unset : 可以用来删除文档的指定属性

    如:

    db.stus.update(
        {name:"张三"},
        {$set:{
             name:“猪八戒”
        }}           
    )

    运行后,张三就被改成猪八戒了

    (3)db.collection.updateMany():

      同时修改多个符合条件的文档

    (4)db.collection.updateOne()

      修改一个符合条件的文档

    4.  删除

    (1)db.collection.remove()  :

    删除符合条件的所有文档(默认情况下回删除多个),如果remove()第二个参数传递一个true,则只会删除符合条件的文档,如:

    db.stus.remove({age: 28}, true)

    如果只传递一个空对象作为参数,则会删除集合中的所有文档

    remove()也可以根据条件来删除文档,传递条件的方式和find()一致

    (2)db.collection.deleteOne(): 删除一个文档

    (3)db.collection.deleteMany(): 删除多个文档

    (4)db.collection.drop() : 删除集合(此操作比删除文档效率高,因为删除文档是将文档一个一个的删除,此时直接删除集合)

    (5)db.dropDatabase():    删除数据库

    5. 文档与文档键的关系

    (1)一对一

    (2)一对多或多对一

    (3)多对多

  • 相关阅读:
    代码开发,测试及发布
    需求改进&系统设计
    综合系统开发----需求分析
    自我介绍+课后6问
    动态规划: 最大m子段和问题的详细解题思路(JAVA实现)
    mybatis typealias 问题
    对偶微分形式
    ASP.NET Web API 直到我膝盖中了一箭【1】基础篇
    第一篇博客,写点什么好呢?
    docker之MySQL主从复制
  • 原文地址:https://www.cnblogs.com/jj1106/p/11262292.html
Copyright © 2011-2022 走看看