java mongodb curd_MongoDB-CURD操作

本文介绍了MongoDB的基本操作,包括如何使用`useDatabase`切换数据库、创建与删除数据库、`createCollection`创建和管理集合,以及`find`, `update`, `delete`等查询、修改和删除文档的方法。还对比了MongoDB与RDBMS的查询语句。
摘要由CSDN通过智能技术生成

数据库

新增

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

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

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

新增一条文档db.student.insert({name:"small-orange",age:18,sex:"男"})

ce24b64b64e1

新增多条文档db.student.insert([{name:"xiaohong",age:20,sex:"女"},{name:"xiaomin",age:20,sex:"男"}])

insertMany()函数用法相同

ce24b64b64e1

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

查询

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

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

find()函数的参数可以给筛选条件的对象查询所有记录

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

db.student.find({})

ce24b64b64e1

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

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

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

6

修改

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

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

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

db..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..remove(options)db.student.remove({_id:"hello"}) 删除一个或多个文档,默认多个

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

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

MongoDB 与 RDBMS Where 语句比较

ce24b64b64e1

测试数据

ce24b64b64e1

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" : "男"

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值