mongoDB作业+小结

关系型数据库有哪些?非关系型数据库有哪些?两者区别

关系型数据库:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL。
非关系型数据库:
NoSql、Cloudant、MongoDb、redis、HBase

两种数据库之间的区别:

1、数据存储方式不同。

关系型数据库:一般都有固定的表结构,并且需要通过DDL语句来修改表结构,不是很容易进行扩展

非关系型数据库:存储是基于文档的,K-V键值对的,还有基于图等。对于数据的格式十分灵活没有固定的表结构,方便扩展

2. 可扩展性

关系型数据库: 纵向扩展也就是说提高处理能力,使用速度更快速的计算机,这样处理相同的数据集就更快了。

非关系型数据库: 横向扩展。非关系型数据存储天然就是分布式的,NoSQL数据库的扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。

3. 数据一致性

非关系型数据库一般强调的是数据最终一致性,
而不像关系型数据库一样强调数据的强一致性

非关系型数据库可能更多的偏向于OLAP场景,
(On-Line Analytical Processing)
联机分析处理OLAP:支持复杂的分析操作,侧重决策支持

关系型数据库更多偏向于OLTP场景。
(On-Line Transaction Processing)
联机事务处理OLTP:主要是基本的、日常的事务处理


操作数据库

1.首先打开数据库
打开mongodb数据库
2.使用数据库
使用的时候需要重新打开一个cmd命令行。之前打开的数据库的cmd命令行 不能关闭
使用之前首先需要执行mongo执行, 执行完以后,才可以对数据库进行增删改查操作
mongo执行

   //创建 student 数据库
> use student
switched to db student
> db
student
//显示当前的数据库
> show dbs
admin  0.000GB
local  0.000GB
//创建的数据库 student不在数据库的列表中
// 要显示它的话 往student 数据库中插入一些数据。
> db.student.insert({"name":"111"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin    0.000GB
local    0.000GB
student  0.000GB
//db 显示当前正在操作的数据库
> db
student
//创建 集合db.createCollection("name","options");
//options :capped 固定集合大小 true/false
//size(可选):为集合指定最大值,即字节数。当 capped为true时 size必须写。   
//max (可选):指定固定集合中包含文档的最大数量。
> db.createCollection("teacher")
{ "ok" : 1 }
//显示集合
> show collections  
student
teacher
//创建一个集合mycol。整个集合空间大小6142800B,文档最大个数为1000个。
> db.createCollection("mycol",{capped:true,size:6142800,max:1000})
{ "ok" : 1 }
//创建数据库 demo
>use demo
switched to db demo
> db.abc
demo.abc//创建 abc集合
> db.abc.insert({"id":"q"})
> WriteResult({ "nInserted" : 1 })
> show collections
abc
//删除集合
> db.abc.drop()
true
//删除数据库
> show dbs//先看当前数据库有哪些
admin    0.000GB
demo     0.000GB
local    0.000GB
student  0.000GB
> db//再看当前操作的数据库是什么 use xxxx可以切换数据库
demo
> db.dropDatabase()//删除数据库
{ "dropped" : "demo", "ok" : 1 }
> show dbs
admin    0.000GB
local    0.000GB
student  0.000GB
>

增删改查操作

1.插入文档操作

使用 insert() 或 save() 方法向集合中插入文档

save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。

insert 和save 的不同点

如果新增的数据中存在主键,
insert()则会抛 org.springframework.dao.DuplicateKeyException 异常

save()则更改原来的内容为新内容。
但是该方法新版本中已废弃,db.collection.insertOne() 或 db.collection.replaceOne() 来代替。


//db.collection.insertOne()单个文档插入到集合中。
//如果文档没有指定_id字段,MongoDB会自动将_id字段与ObjectId值添加到新文档。
> db.teacher.insertOne({"name":"zs","age":"12"})
{
        "acknowledged" : true,
        "insertedId" : ObjectId("608ab5432f1035dac70050ca")
}
//insertMany([{}])方法将多个文档插入到集合中
> db.teacher.insertMany([{"name":"zs"},{"name":"as"},{"name":"ss"}])
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("608ab49c2f1035dac70050c6"),
                ObjectId("608ab49c2f1035dac70050c7"),
                ObjectId("608ab49c2f1035dac70050c8")
        ]
}
>

2.更新文档

> show dbs
admin    0.000GB
local    0.000GB
student  0.000GB
> use student
switched to db student
> show collections
mycol
student
teacher

> db.teacher.find()
{ "_id" : ObjectId("608ab3f92f1035dac70050c5"), "name" : "zs" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c6"), "name" : "zs" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c7"), "name" : "as" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c8"), "name" : "ss" }
{ "_id" : ObjectId("608ab51d2f1035dac70050c9"), "name" : "zs" }
{ "_id" : ObjectId("608ab5432f1035dac70050ca"), "name" : "zs", "age" : "12" }
// 更新数据 update({},{$set:{}}) 修改第一个匹配的数据
> db.teacher.update({"name":"zs"},{$set:{"name":"tttll"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.teacher.find()
//这个的name的值 变成了tttll
{ "_id" : ObjectId("608ab3f92f1035dac70050c5"), "name" : "tttll" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c6"), "name" : "zs" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c7"), "name" : "as" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c8"), "name" : "ss" }
{ "_id" : ObjectId("608ab51d2f1035dac70050c9"), "name" : "zs" }
{ "_id" : ObjectId("608ab5432f1035dac70050ca"), "name" : "zs", "age" : "12" }
// 更新数据 update({},{$set:{}},{multi:true}) 修改所以匹配到数据
//把所有name是zs的修改为tttll 
> db.teacher.update({"name":"zs"},{$set:{"name":"tttll"}},{multi:true})
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 3 })
> db.teacher.find()
{ "_id" : ObjectId("608ab3f92f1035dac70050c5"), "name" : "tttll" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c6"), "name" : "tttll" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c7"), "name" : "as" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c8"), "name" : "ss" }
{ "_id" : ObjectId("608ab51d2f1035dac70050c9"), "name" : "tttll" }
{ "_id" : ObjectId("608ab5432f1035dac70050ca"), "name" : "tttll", "age" : "12" }

删除文档操作

> db.teacher.find()
{ "_id" : ObjectId("608ab3f92f1035dac70050c5"), "name" : "tttll" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c6"), "name" : "tttll" }
{ "_id" : ObjectId("608ab49c2f1035dac70050c7"), "name" : "as" }
{ "_id" : ObjectId("608ab51d2f1035dac70050c9"), "name" : "tttll" }
{ "_id" : ObjectId("608ab5432f1035dac70050ca"), "name" : "tttll", "age" : "12" }
> db.teacher.remove({"name":"tttll"})
WriteResult({ "nRemoved" : 4 })
> db.teacher.find()
{ "_id" : ObjectId("608ab49c2f1035dac70050c7"), "name" : "as" }
//插入了四次数据
> db.teacher.insert({"name":"tttll"})
WriteResult({ "nInserted" : 1 })
> db.teacher.find()
{ "_id" : ObjectId("608ab49c2f1035dac70050c7"), "name" : "as" }
{ "_id" : ObjectId("608abb152f1035dac70050cb"), "name" : "tttll" }
{ "_id" : ObjectId("608abb162f1035dac70050cc"), "name" : "tttll" }
{ "_id" : ObjectId("608abb172f1035dac70050cd"), "name" : "tttll" }
{ "_id" : ObjectId("608abb172f1035dac70050ce"), "name" : "tttll" }
> db.teacher.remove({"name":"tttll"},{justOne:true})
WriteResult({ "nRemoved" : 1 })
//db.col.remove({})把满足条件的数据全部删除。
//添加了justOne后 填true 或者1 只会删除一个数据
> db.teacher.remove({})
WriteResult({ "nRemoved" : 4 })
> db.teacher.find()
//db.col.remove({}) 删除所有数据

查询文档

需要以易读的方式来读取数据,可以使用pretty()方法

> db.teacher.find()
>db.teacher.insert({"name":"zz","title":"hh","id":"11","url":"url"})
WriteResult({ "nInserted" : 1 })
> db.teacher.find()
{ "_id" : ObjectId("608abcfc2f1035dac70050cf"), "name" : "zz", "title" : "hh", "id" : "11", "url" : "url" }
> db.teacher.find().pretty()
{
        "_id" : ObjectId("608abcfc2f1035dac70050cf"),
        "name" : "zz",
        "title" : "hh",
        "id" : "11",
        "url" : "url"
}
//除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档。

where 等于

操作格式
等于{:}
小于{:{$lt:}}
小于等于{:{$lte:}
大于{:{$lt:}}
大于等于{:{$lt:}}
不等于{:{$ne:}}
或者{$or:{},{}}
       	       **数字的数据类型要一致**
//因为我写的时候是字符串的形式 所以找的时候 3也要加""
> db.teacher.find()
{ "_id" : ObjectId("608abf472f1035dac70050d1"), "name" : "zz" }
{ "_id" : ObjectId("608abf472f1035dac70050d2"), "name" : "zx" }
{ "_id" : ObjectId("608abf472f1035dac70050d3"), "name" : "zc" }
//查找条件等于"name":"zx"的数据
> db.teacher.find({"name":"zx"})
{ "_id" : ObjectId("608abf472f1035dac70050d2"), "name" : "zx" }
//查找条件小于"3"的 
> db.teacher.find({"id":{$lt:"3"}}).pretty()
{ "_id" : ObjectId("608ac02b2f1035dac70050d4"), "id" : "1", "name" : "aa" }
{ "_id" : ObjectId("608ac0332f1035dac70050d5"), "id" : "2", "name" : "as" }
//查找条件小于等于"3"的
> db.teacher.find({"id":{$lte:"3"}}).pretty()
{ "_id" : ObjectId("608ac02b2f1035dac70050d4"), "id" : "1", "name" : "aa" }
{ "_id" : ObjectId("608ac0332f1035dac70050d5"), "id" : "2", "name" : "as" }
{ "_id" : ObjectId("608ac0372f1035dac70050d6"), "id" : "3", "name" : "as" }
>
//查找条件大于"3"的
> db.teacher.find({"id":{$gt:"3"}}).pretty()
{ "_id" : ObjectId("608ac03b2f1035dac70050d7"), "id" : "4", "name" : "as" }
//查找条件大于等于"3"的
> db.teacher.find({"id":{$gte:"3"}}).pretty()
{ "_id" : ObjectId("608ac0372f1035dac70050d6"), "id" : "3", "name" : "as" }
{ "_id" : ObjectId("608ac03b2f1035dac70050d7"), "id" : "4", "name" : "as" }
//查找id不等于"3"的数据
> db.teacher.find({"id":{$ne:"3"}}).pretty()
{ "_id" : ObjectId("608abf472f1035dac70050d1"), "name" : "zz" }
{ "_id" : ObjectId("608abf472f1035dac70050d2"), "name" : "zx" }
{ "_id" : ObjectId("608abf472f1035dac70050d3"), "name" : "zc" }
{ "_id" : ObjectId("608ac02b2f1035dac70050d4"), "id" : "1", "name" : "aa" }
{ "_id" : ObjectId("608ac0332f1035dac70050d5"), "id" : "2", "name" : "as" }
{ "_id" : ObjectId("608ac03b2f1035dac70050d7"), "id" : "4", "name" : "as" }
//or 两个条件满足一个就行
> db.teacher.find({$or:[{"name":"aa"},{"id":"3"}]})
{ "_id" : ObjectId("608ac02b2f1035dac70050d4"), "id" : "1", "name" : "aa" }
{ "_id" : ObjectId("608ac0372f1035dac70050d6"), "id" : "3", "name" : "as" }
//and 两个条件必须都要满足
> db.teacher.find({"name":"aa","id":"1"})
{ "_id" : ObjectId("608ac02b2f1035dac70050d4"), "id" : "1", "name" : "aa" }
//and or联用
> db.teacher.find({"id":{$lt:"3"},$or:[{"name":"aa"},{"name":"as"}]}).pretty()
{ "_id" : ObjectId("608ac02b2f1035dac70050d4"), "id" : "1", "name" : "aa" }
{ "_id" : ObjectId("608ac0332f1035dac70050d5"), "id" : "2", "name" : "as" }
>
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB 7.0中,你可以通过以下步骤设置账号密码: 1. 下载并安装MongoDB 7.0版本。 2. 打开终端或命令提示符,进入MongoDB的安装目录。 3. 启动MongoDB服务。在终端中输入以下命令: ```shell ./mongod ``` 4. 打开另一个终端或命令提示符,进入MongoDB的安装目录。 5. 连接到MongoDB服务器。在终端中输入以下命令: ```shell ./mongo ``` 6. 创建一个管理员用户。在MongoDB Shell中输入以下命令: ```shell use admin db.createUser( { user: "admin", pwd: "admin123", roles: [ { role: "root", db: "admin" } ] } ) ``` 这将创建一个名为admin的数据库,并在该数据库中创建一个名为admin的用户,密码为admin123,并赋予该用户root角色。 7. 退出MongoDB Shell。在MongoDB Shell中输入以下命令: ```shell quit() ``` 8. 停止MongoDB服务。在终端中按下Ctrl+C键停止MongoDB服务。 9. 修改MongoDB配置文件。打开MongoDB的配置文件(通常位于安装目录的/etc/mongod.conf或/data/db/mongod.conf),找到并取消注释以下行: ```shell security: authorization: enabled ``` 10. 保存并关闭配置文件。 11. 启动MongoDB服务。在终端中输入以下命令: ```shell ./mongod ``` 12. 打开另一个终端或命令提示符,进入MongoDB的安装目录。 13. 连接到MongoDB服务器。在终端中输入以下命令: ```shell ./mongo -u admin -p admin123 --authenticationDatabase admin ``` 这将使用管理员用户连接到MongoDB服务器。 14. 现在你可以使用账号密码进行MongoDB的操作了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值