关于MongoDB数据库的各种操作

本文介绍了MongoDB的基本操作,包括数据库的启动与连接、创建与删除数据库及集合、插入与更新文档、查询与删除文档等,并详细展示了各种操作的具体命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库的启动与连接

首先,需要先进入到安装的MongoDB的bin目录下,会有如下这些文件:

bsondump  mongod     mongoexport  mongoimport  mongoperf     mongos     mongotop
mongo     mongodump  mongofiles   mongooplog   mongorestore  mongostat
注意:这是在Linux下的MongoDB操作!!

进行如下操作:

./mongod --dbpath=/data/db/ --logpath=/usr/local/mongodb/mongodb.log --logappend &

--dbpath指定数据文件路径,--logpath指定日志文件路径,--logappend表示日志追加,&表示后台启动

现在,数据库已经启动了,那么接下来进行连接。(必须要先启动才能够连接!)

进行如下操作:

./mongo

数据库启动并连接成功

创建数据库

#新建数据库,或者切换数据库
> use test 
#查看当前正在使用的数据库
> db
#列出所有的数据库,刚创建的数据库不会显示,需要插入数据后才能看到
> show dbs

删除数据库

#删除哪个数据库之前,先 use 数据库
> use test
> db.dropDatabase()

创建集合

#查看已经存在的集合
> show collections

#创建集合,可以是空集合
> db.createCollection("集合名",{})

#或者
> db.集合名.insert({"student":"666"})

删除集合

#db.集合名.drop()

> use student 
> show collections
student
system.indexes
test
>db.test.drop()
>show collections
student
system.indexes

插入文档

# db.集合名称.insert(文档)

#插入单个文档
> db.student.insert({name:"小明",age:18,address:"北京"})

#插入多个文档  注意"[]"
> db.student.insert([{name:"李雷",age:17,address:"河南"},{name:"韩梅梅",age:20,address:"河北"}])

#使用save插入文档
#db.集合名.save(文档)
> db.student.save({name:"新之助",age:18,address:"日本"})

#修改指定ID中文档的内容   通过传入的文档替换已有的文档
> db.student.save({_id:ObjectId("5b5abd7d89"),name:"新之助",age:40,address:"日本"})

更新文档

# $inc:在原有的基础上累加后更新
> db.student.find()
{ "_id" : ObjectId("5b5c3173aeca37b391d4c895"), "name" : "小明", "age" : 18, "address" : "北京" }
{ "_id" : ObjectId("5b5c31cfaeca37b391d4c897"), "name" : "李雷", "age" : 20, "address" : "河南" }
{ "_id" : ObjectId("5b5c31ddaeca37b391d4c898"), "name" : "韩梅梅", "age" : 20, "address" : "河北" }
> db.student.update({name:"李雷"},{$inc:{age:20}})
> db.student.find({name:"李雷"})
{ "_id" : ObjectId("5b5c31cfaeca37b391d4c897"), "name" : "李雷", "age" : 40, "address" : "河南" }

# $set:直接更新
> db.student.update({name:"李雷"},{$set:{age:20}})
> db.student.find({name:"李雷"})
{ "_id" : ObjectId("5b5c31cfaeca37b391d4c897"), "name" : "李雷", "age" : 20, "address" : "河南" }

# 当前面条件对应多条文档时,默认更新一条文档
# 若想更新全部,后面添加{multi:true}
> db.student.update({age:20},{$set:{address:"深圳"}},{multi:true})
> db.student.find()
{ "_id" : ObjectId("5b5c3173aeca37b391d4c895"), "name" : "小明", "age" : 18, "address" : "北京" }
{ "_id" : ObjectId("5b5c31cfaeca37b391d4c897"), "name" : "李雷", "age" : 20, "address" : "深圳" }
{ "_id" : ObjectId("5b5c31ddaeca37b391d4c898"), "name" : "韩梅梅", "age" : 20, "address" : "深圳" }

查询文档

# 1  db.集合名.find()

#查询指定列
#name表示查询条件,age和address表示要显示的字段,1表示显示
> db.student.find({name:"李雷"},{age:1,address:1})
{ "_id" : ObjectId("5b5c31cfaeca37b391d4c897"), "age" : 20, "address" : "深圳" }

# 2  以格式化的方式来显示文档
> db.student.find().pretty()
{
	"_id" : ObjectId("5b5c3173aeca37b391d4c895"),
	"name" : "小明",
	"age" : 18,
	"address" : "北京"
}
{
	"_id" : ObjectId("5b5c31cfaeca37b391d4c897"),
	"name" : "李雷",
	"age" : 20,
	"address" : "深圳"
}
{
	"_id" : ObjectId("5b5c31ddaeca37b391d4c898"),
	"name" : "韩梅梅",
	"age" : 20,
	"address" : "深圳"
}

删除文档

# db.集合名.remove()

> db.student.remove({name:"小明"})
WriteResult({ "nRemoved" : 1 })
> db.student.find().pretty()
{
	"_id" : ObjectId("5b5c31cfaeca37b391d4c897"),
	"name" : "李雷",
	"age" : 20,
	"address" : "深圳"
}
{
	"_id" : ObjectId("5b5c31ddaeca37b391d4c898"),
	"name" : "韩梅梅",
	"age" : 20,
	"address" : "深圳"
}


# > db.student.remove({age:20},{justOne:true}) 只删除满足条件的一条文档

查询条件操作符

#大于
    db.集合名.find({age:{$gt:20}})  查询年龄大于20的

#大于等于
    db.集合名.find({age:{$gte:20}})  查询年龄大于等于20的

#小于
    db.集合名.find({age:{$lt:20}})  查询年龄小于20的

#小于等于
    db.集合名.find({age:{$lte:20}})  查询年龄小于等于20的

#大于等于并小于等于
    db.集合名.find({age:{$gte:20,$lte:40}})  查询年龄大于等于20并且小于等于40的

#等于
    db.集合名.find({age:20})  查询年龄等于20的

#查询满足条件的文档的条数
    db.集合名.find().count()

条件查询 and 和 or

#and条件
	db.集合名.find({address:"深圳",age:{$gt:16}})
#or条件
	db.集合名.find({$or:[{address:"深圳"},{age:{$gt:16}}]})
#and or联合使用
	db.集合名.find({$or:[{name:"韩梅梅"},$or:[{address:"深圳"},{age:{$gt:16}}]})

limit 、skip

#查询指定数量的数据
db.集合名.find().limit(3)

#跳过指定数量的数据
db.集合名.find().skip(3)

#skip和limit联合使用
#实现分页的效果
db.集合名.find().skip(3).limit(3)

排序

# 1:升序 -1:降序
db.集合名.find().sort({age:1})  

以上就是MongoDB的所有的操作了,欢迎各位的补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值