Mongodb学习笔记(一)安装+基本crud

Mongodb简介

  • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
  • 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName=“Sameer”,Address=“8 Gandhi
    Road”)来实现更快的排序。
  • 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
  • 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
  • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
  • Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
  • Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
  • Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
  • GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
  • MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。

mongodb与mysql的区别

MySQL:
数据必须具有确定的列数和类型。
可以进行复杂的查询和事务操作。
MongoDB:
每一条数据的格式和内容可以不同。
查询方式较少。
在典型适用场景性能较高。

mongodb安装

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

添加环境变量:

将以下路径加入path
在这里插入图片描述

启动Mongodb

在C盘根目录下创建data文件夹,在data下
创建db文件夹
• 打开CMD命令行窗口,输入mongod
端口号27017
在这里插入图片描述

登录服务器

打开CMD命令行窗口,输入mongo
在这里插入图片描述

基本概念

  • 数据库(database) – 数据库是一个仓库,在仓库中可以存放集合。
  • 集合(collection) – 集合类似于数组,在集合中可以存放文档。
  • 文档(document) – 文档数据库中的最小单位,我们存储和操作的 内容都是文档。
    MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合

在这里插入图片描述

mongodb模型

在这里插入图片描述

操作数据库

-显示当前所有数据库
在这里插入图片描述

-进入指定数据库
在这里插入图片描述

-显示当前所处的数据库
在这里插入图片描述

-显示数据库中所有集合
show collections

数据库的CRUD(增删改查)

插入

向数据库中插入一个文档
db..insert(doc)
db..insertOne(doc)

在这里插入图片描述
-向集合中插入多个文档,使用数组的形式
db..insertMany(doc)

  db.stus.insert([{"name" : "猪八戒", "age" : 18, "gender" : "male" },
{"name" : "唐三藏", "age" : 18, "gender" : "male" },
{"name" : "沙和尚", "age" : 18, "gender" : "male" }]);

结果如图
在这里插入图片描述
当我们向集合中插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加_id
该属性用来作为文档的唯一标识
_id可以自己指定,如果我们指定了数据库就不会再添加了,需要确保唯一性

查询

在这里插入图片描述
find()中可以接受参数作为条件参数
-例 db.stus.find({name:“唐三藏”,age:18}); 查找name字段名为唐三藏并且age=18的数据
db.stus.find()
查询当前集合所有符合条件的文档
db.stus.findOne()
查询集合中符合条件的第一个文档
db.stus.find().count()
查询所有结果的数量

修改

db.stus.update(查询条件,新对象)
-update默认情况下会使用新的对象替换旧的对象

  • 示例 db.stus.update({name:“沙和尚”},{“name” : “沙和尚”, “age” : 28, “gender” : “male” });

如果需要修改指定的属性,需要使用修改操作符 $set

  • 示例 db.stus.update({name:“沙和尚”},{$set:{age : “100”}});
  • 需要删除属性 $unset

同时修改多个符合条件的文档
db.stus.updateMany(查询条件,新对象)
同时修改一个符合条件的文档
db.stus.updateOne(查询条件,新对象)

删除

删除一个或多个文档 ,第二个参数传递一个true,只会删除一个,默认删除多个
db.stus.remove({ 条件},true/false)

  • 示例 db.stus.remove({name:“沙和尚”});
  • 如果传递空对象作为参数,清空集合中所有的文档 db.stus.remove({ });效率较低
  • db.stus.drop(); 清除集合
    删除一个文档
    db.stus.deleteOne()
    删除多个文档
    db.stus.deleteMany()
    删除数据库
    db.dropDatabase()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值