MongoDB基本使用
MongoDB是一种文档导向数据库管理系统,由C++撰写而成。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB
1.安装
开源版下载地址 https://www.mongodb.com/try/download/community
菜鸟教程 https://www.runoob.com/mongodb/mongodb-tutorial.html
配置环境变量:将MongoDB的bin目录添加到系统环境变量中 D:\software\MongoDB\bin
2.基本使用
# 进入mongo
mongo
# 查看现有数据库
show dbs
2.1数据库创建和删除
注意:在创建数据库时,必须插入最少一条数据才能真正创建成功,不然执行show dbs
命令,查询不到新创建的数据库。
# 创建数据库
use test1
# 删除数据库
## 首先要切换到要删除的数据库
use test1
# 删除
db.dropDatabase()
# 查看现有数据库
show dbs
2.2 集合的创建和删除
db.createCollection(name, options)
- name: 集合名称
- options:可选参数,指定有关内存大小及索引的选项
db.collection.find()
查看集合中的数据。
# 创建集合
db.createCollection("coll1")
# 查看集合
show collections
# 删除集合
## 切换到当前库
use test1
## 删除
db.coll1.drop() # 删除 coll1 集合
# 查看集合
show collections
# 清空集合
db.col.remove({})
2.3条件查询
db.coll.find({"age": {$gt: 20}})
查看年龄大于20岁的。
- (>) 大于 -
$gt
- (<) 小于 -
$lt
- (>=) 大于等于 -
$gte
- (<= ) 小于等于 -
$lte
2.4 Limit()方法和Skip() 方法
-
limit()
读取指定数量的数据记录db.COLLECTION_NAME.find().limit(NUMBER)
-
skip()
跳过指定数量的数据db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
例子
# 查询 前10条数据,查询结果只显示name列
db.coll.find({}, {"name": 1}).limit(10)
# 查询 索引2开始的3条数据
db.coll.find().limit(3).skip(2)
2.5 sort() 方法
sort()
方法可以通过参数指定排序的字段,并使用 1
和 -1
来指定排序的方式,其中1
为升序排列,而 -1
是用于降序排列。
db.COLLECTION_NAME.find().sort({KEY:1})
# 按 age 字段进行升序排序
db.coll.find().sort({age:1})
2.6 文档的插入更新删除
文档的数据结构和 JSON 基本一样。
所有存储在集合中的数据都是 BSON 格式。
BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
2.6.1 插入:
db.COLLECTION_NAME.insert(document)
# 或
db.COLLECTION_NAME.save(document)
-
save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。
-
insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。
3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany()。
# db.collection.insertOne
db.collection.insertOne(
<document>,
{
writeConcern: <document>
}
)
# db.collection.insertMany
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
参数说明:
document
:要写入的文档。writeConcern
:写入策略,默认为1
,即要求确认写操作,0
是不要求。ordered
:指定是否按顺序写入,默认true
,按顺序写入。
2.6.2 更新文档
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。接下来让我们详细来看下两个函数的应用及其区别。
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
例子:
# 将名字为 zhangsan的age改成20
db.coll.update({name: "zhangsan"},{$set:{age: 20}})
# 将name为zhangsan111的name改成 zhangsan
db.coll.update({name: "zhangsan111"},{$set:{name: "zhangsan"}})
2.6.3 删除文档
# 删除 age为20的数据
db.coll.remove({age: 20})