美文网首页
MongoDB-CURD操作

MongoDB-CURD操作

作者: 小橙子_43db | 来源:发表于2020-01-06 15:16 被阅读0次

    数据库

    新增

    语法:use databasename

    如果数据库存在切换到数据库,不存在就创建对应的数据库

    查询

    语法:show dbs

    查看所有数据库,刚创建没有插入数据的数据库不会显示。

    语法:db 查询当前数据库

    MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

    删除

    语法:db.dropDatabase()    

    删除当前数据库,要删除数据库时先使用use databasename命令进入数据库然后再使用删除命令

    集合

    新增

    语法:db.createCollection(name, options)

    参数说明:

    name: 要创建的集合名称

    options: 可选参数, 指定有关内存大小及索引的选项

    options 可以是如下参数:

    字段类型描述

    capped布尔(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。

    当该值为 true 时,必须指定 size 参数。

    autoIndexId布尔(可选)如为 true,自动在 _id 字段创建索引。默认为 false。

    size数值(可选)为固定集合指定一个最大值,以千字节计(KB)。

    如果 capped 为 true,也需要指定该字段。

    max数值(可选)指定固定集合中包含文档的最大数量。

    在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。

    > db.createCollection("mycol", { capped : true, autoIndexId : true, size :

      6142800, max : 10000 } ){ "ok" : 1 }

    创建固定文档mycol,整个集合空间大小 6142800 KB, 自动在_id字段创建索引,文档最大个数为 10000 个。

    查看

    语法:show collections 或 show tables

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

    删除

    语法:db.collection.drop()

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

    > db.mycol2.drop()

    true

    文档

    新增

    db.<collection>.insert({}):向集合中插入一个或多个文档,当我们向集合中插入文档时如果没有指定_id,则数据库会自动添加_id该属性用来作为文档的唯一标识,_id的值可以自己指定,但是必须是唯一值,如果自己指定了_id的值,系统就不会再添加

    db.<collection>.insertOne({}):添加一条文档

    db.<collection>.insertMany({}):添加多条文档,参数为数组

    新增一条文档

    db.student.insert({name:"small-orange",age:18,sex:"男"})

    新增多条文档

    db.student.insert([{name:"xiaohong",age:20,sex:"女"},{name:"xiaomin",age:20,sex:"男"}])

    insertMany()函数用法相同

    指定_id的值

    db.student.insertOne({_id:"hello",name:"orange",age:16,sex:"男"})

    查询

    db.getCollection(<集合名>).find({}):查询集合中的所有文档记录

    db.<collection>.find({}):查询集合中的所有文档记录

    find()函数的参数可以给筛选条件的对象

    查询所有记录

    db.getCollection("student").find({})

    db.student.find({})

    按条件查询

    db.student.find({age:18}) 查询名字为orange的记录

    db.student.findOne({age:18}) 返回符合条件的第一个文档

    db.student.find({}).count()  返回查询记录的条数 

    6

    修改

    db.<collection>.update():更新一条或多条文档记录,默认是替换

    db.<collection>.updateOne():更新一条文档记录

    db.<collection>.updateMany():更新多条文档记录

    db.<collection>.replace():替换文档

    db.student.update(

        {name:"xiaomin"},

        {age:20}

    ) 替换旧对象,多个符合替换条件时,只会替换第一个

    db.student.update(

        {name:"xiaohong"},

        {$set:{age:20}},

        {multi:true}

    ) multi参数默认为false,为true时会更新多个,此时update相当于updateMany()

    db.student.update(

        {name:"huizhi"},

        {$set:{age:10,score:100}}

    )  加上$set后为修改对应字段的值,另外如果有原来没有的字段,会直接添加到集合中

    db.student.update(

        {name:"huizhi"},

        {$unset:{age:10,score:100}}

    ) 删除unset里面对应字段

    db.student.updateMany(

        {name:"huizhi"},

        {$unset:{age:10,score:100}}

    ) 更新多条记录

    db.student.updateOne(

        {name:"huizhi"},

        {$set:{age:10,score:98}}

    ) 更新一条记录

    删除

    语法:db.<collection>.remove(options)

    db.student.remove({_id:"hello"}) 删除一个或多个文档,默认多个

    db.student.remove({_id:"hello"},true) 删除一个时传递参数

    db.student.remove({})  清空集合,较db.student.drop()性能低,remove会逐条删除,drop直接清除所有

    MongoDB 与 RDBMS Where 语句比较

    测试数据

    AND条件

    语法格式:db.col.find({key1:value1, key2:value2})

    MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

    db.student.find(

        {name:"xiaohong",sex:"男"}

    )

    结果:{ "_id" : ObjectId("5e0f5d7ced35695bbf082161"), "name" : "xiaohong", "age" : 18.0, "sex" : "男"}

    OR条件

    语法格式如下:db.col.find(  { $or: [ {key1: value1}, {key2:value2} ]  })

    db.student.find(

        {$or:[{name:"xiaohong"},{age:20}]}

    )

    结果:{

        "_id" : ObjectId("5e0f5d7ced35695bbf082161"),

        "name" : "xiaohong",

        "age" : 18.0,

        "sex" : "男"

    }

    {

        "_id" : ObjectId("5e0ffbf9ed35695bbf082165"),

        "name" : "xiaohong",

        "age" : 20.0,

        "sex" : "女"

    }

    {

        "_id" : ObjectId("5e0ffbf9ed35695bbf082166"),

        "name" : "xiaomin",

        "age" : 20.0,

        "sex" : "男"

    }

    AND条件与OR条件并用

    db.student.find(

        {sex:"男",$or:[{name:"xiaohong"},{age:20}]}

    )

    结果:

    {

        "_id" : ObjectId("5e0f5d7ced35695bbf082161"),

        "name" : "xiaohong",

        "age" : 18.0,

        "sex" : "男"

    }

    {

        "_id" : ObjectId("5e0ffbf9ed35695bbf082166"),

        "name" : "xiaomin",

        "age" : 20.0,

        "sex" : "男"

    }

    相关文章

      网友评论

          本文标题:MongoDB-CURD操作

          本文链接:https://www.haomeiwen.com/subject/glatactx.html