MongoDB 数据库基本操作

  • 初识 MongoDB
    • 启动 MongoDB
      • DOS(Windows)端启动 MongoDB 服务
    • help 帮助文档
    • 关闭 MongoDB 服务
  • 1. 数据库创建
    • 删除数据库
  • 2. 创建集合
    • 查询集合
  • 3. 文档操作
    • 插入文档
    • 更新文档
    • 条件查询
    • 删除文档数据

初识 MongoDB

启动 MongoDB

DOS(Windows)端启动 MongoDB 服务

  • 配置环境变量
    在电脑->属性->环境变量->Path中添加 MongoDB 安装路径(根据自己的安装路径添加)
  • 启动服务并进行相关配置;
mongod.exe --bind_ip 127.0.0.1 --logpath D:\MongoDB\dblog\mongodb.log --logappend --dbpath D:\MongoDB\db --port 27017 --service
bind_ip :绑定服务 IP,绑定127.0.0.1,则只能本机访问,不指定默认本地所有 IP ;  logpath :配置日志存放的位置;  logappend :日志使用追加的方式;  dbpath :配置数据存放的位置;  port :配置端口号,27017是默认端口;  service :以服务方式启动,即后台启动。

help 帮助文档

MongoDB 我们刚接触,并不了解怎么使用命令进行操作,这时候就可以用 help 帮助文档了,里面有 MongoDB 的所有操作命令。

查看 MongoDB 支持哪些命令:help;查询当前数据库支持的方法:db.help();查询集合支持哪些方法:db.集合名.help()。

关闭 MongoDB 服务

  • 能连接到客户端时:
use admin     #使用系统数据库admin,只有在admin数据库中才可以进行关闭服务的操作
db.shutdownServer()     #关闭服务
  • 客户端无法连接时:
    1.查看 Mongo 相关进程 ps -ef | grep mongo
    2.kill 和 Mongo 的服务进程 kill 26

1. 数据库创建

mongo
use mydb
db.mydb.insert({_id:1,name:"李小红"})

删除数据库

MongoDB 删除数据库需要先切换到该数据库中:

use Testdb
db.dropDatabase()

2. 创建集合

  • 先进入指定数据库 Testdb :use Testdb;
  • 在 Testdb 数据库中创建创建固定集合 test ,整个集合空间大小512000KB,文档最大个数为1000个。
db.createCollection("test", { capped : true, autoIndexId : true, size : 512000, max : 1000 } )
capped :是一个布尔类型,true 时创建固定集合,必须指定 size。固定集合指有固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。默认为 false;autoIndexId :也是一个布尔类型,如为 true,自动在_id 字段创建索引。默认为 false ;size :为固定集合指定一个最大值(以字节 KB 计);max :指定固定集合中包含文档的最大数量。

不过,和 MySQL 不同的是,在 MongoDB 中,你不一定需要先创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

创建集合命令(推荐):db.集合名.insert()(注意:一条数据用大括号“ {} ”括起来,多条数据用“ [] ”将所有数据括起来)。

db.mytest2.insert([{"name" : "王小明","sex":"男"},{"name" : "李小红","sex":"女"}])

默认 id

MongoDB 中存储的文档 必须 有一个_id键(如果我们插入数据的时候未指定_id,系统会自动生成一个默认的 id )。

这个键的值可以是任何类型的,默认是个 ObjectId 对象。在一个集合里面,每个文档都有唯一的_id值,来确保集合里面每个文档都能被唯一标识。如果有两个集合的话,两个集合可以都有一个值为123的_id键,但是每个集合里面只能有一个_id是123的文档。

查询集合

查询集合命令:db.集合名.find()。


删除集合命令db.集合名.drop()

3. 文档操作

文档的数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式。BSON 是一种类 JSON 的一种二进制形式的存储格式,简称: Binary JSON

插入文档

插入文档命令:db.集合名.insert(文档)

我们还可以将数据定义为一个变量:

document=({_id:1,  name: '王小明',  sex: '男',  hobbies: ['乒乓球','羽毛球'],  birthday: '1996-02-14'  });
db.person.insert(document)

person 是集合名,如果该集合不在该数据库中,MongoDB 会自动创建该集合并插入文档,查看 person 集合,如图所示:

更新文档

更新文档主要会用到 update() 方法和 save() 方法。

我们先把 document 插入到集合 person2;

db.person2.insert(document)

由于信息有误,上面 birthday 的格式错了,该怎么去修改这个字段的值呢?这时就要用到 update() 方法了。

用 update() 方法来更新 person2 的数据,把王小明的出生日期替换成1996,命令如下:

db.person2.update({birthday:"1996-02-14"},{$set:{birthday:"1996"}})

pretty() 方法的作用是使文档整齐的输出:


可以发现:

update() 有两个参数,都是对象,中间用逗号“ ,”间隔;
第一个参数表示需要修改的值;
第二个参数用 $set 操作符指向更新后的值。

save() 方法

save() 方法通过传入的文档来替换已有文档。

我们先把 document 插入到集合 person3 中;

db.person3.insert(document)
db.person3.save({  "_id" :1,  "name" : "李小红",  "sex" : "女",  "hobbies" : [  "画画",  "唱歌",  "跳舞"  ],  "birthday" : "1996-06-14"
})

注:如果 save() 法也指定了_id,则对文档进行更新;未指定_id则会执行插入功能,MongoDB 默认自动生成一个不重复的_id。

总结:

  • update() 方法仅适用于修改某条数据中的某个键值;

  • save() 方法适用于修改整条数据。

mongo
use Testdb3document=([{_id:1,name:"张小华",sex: "男",phone: "12356986594",hobbies: ["打篮球","踢足球","唱歌"]}]);db.stu1.insert(document)
db.stu2.insert(document)
db.stu3.insert(document)    db.stu2.update({phone: "12356986594"},{$set:{ phone: "18356971462"}})
db.stu3.save({"_id":1,"name":"张晓晓","sex":"女","phone":"12365498704","hobbies":["跳舞","羽毛球","唱歌"]});

条件查询

操作 格式 范例 关系数据库中类似的语句
等于 {<key>:<value>} db.stu1.find({"name":"李小红"}).pretty() where name = '李小红'
小于 {<key>:{$lt:<value>}} db.stu1.find({"age":{$lt:18}}).pretty() where age < 18
小于或等于 {<key>:{$lte:<value>}} db.stu1.find({"age":{$lte:18}}).pretty() where age <= 18
大于 {<key>:{$gt:<value>}} db.stu1.find({"age":{$gt:18}}).pretty() where age > 18
大于或等于 {<key>:{$gte:<value>}} db.stu1.find({"age":{$gte:18}}).pretty() where age >= 18
不等于 {<key>:{$ne:<value>}} db.stu1.find({"age":{$ne:18}}).pretty() where age != 18

AND 条件

find() 方法可以传入多个键 (key),每个键 (key) 以逗号隔开,即常规 SQL 的 AND 条件。如查询集合 stu1 中年龄为20岁的男性信息:

db.stu1.find({"age":20, "sex":"男"}).pretty()

删除文档数据

删除指定的数据:

db.stu1.remove({'age':20})     //删除年龄为20的数据

删除全部数据(集合并不会删除):

db.remove({})

加油!

感谢!

努力!

MongoDB 数据库基本操作相关推荐

  1. 头歌 MongoDB 数据库基本操作

    MongoDB 数据库基本操作 第1关:数据库创建 第2关:创建集合 第3关:文档操作一 第4关:文档操作二 第1关:数据库创建 pgrep mongo -l mongo use mydb db.my ...

  2. 分布式数据库NoSQL(二)——MongoDB 数据库基本操作

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系 ...

  3. MongoDB数据库基本操作笔记

    为了保存网站的用户数据和业务数据,通常需要一个数据库.MongoDB和Node.js特别般配,因为Mongodb是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储的,增删改 ...

  4. Mongodb 数据库基本操作语句,结合 Node.js + express + mongoose (实现增、删、改、查,批量增加、修改等,创建临时表,多表查询......)

    版本说明 "MongoDB": "4.0.9", // cmd命令窗输入:mongo --version "node": 10.13.0, ...

  5. mongodb在mysql中怎么用,mongoDB数据库基本操作

    mongoDB中聚集集合(collection/coll)相当于mysql中的表 文档相当于mysql中的每一行数据 常用命令 1.获得帮助命令db.help() db.表名.help() db.表名 ...

  6. educoder MongoDB 数据库基本操作

    第1关:数据库创建 编程要求 在右侧命令行中连接 MongoDB ,创建一个名为 mydb 的数据库,并插入数据:_id:1,name:"李小红". 测试说明 操作完之后点击评测, ...

  7. MongoDB数据库—基本操作

    文章目录 一.数据库操作 1. 查看所有数据库 2. 创建数据库 3. 删除数据库 4. 查看当前正在使用的数据库 5. 断开连接 6. 查看命令api 二.集合操作 1. 查看当前数据库下有哪些集合 ...

  8. MongoDB数据库基本操作

    文章目录 1.创建库 2.创建集合 3.插入.查看数据 4.查找内容 5.设置别名 6.查看数据类型 7.更改数据内容 8.删除集合 9.删除数据库 10.统计集合中数据条数 11.导出数据库中的数据 ...

  9. mongodb数据库显示obj_MongoDB基础(三)—基本操作及管理 | leon的博客

    第1章 MongoDB的基本操作 1.1 查询帮助信息 > help db.help()                    help on db methods db.mycoll.help ...

  10. MongoDB的基本操作(创建数据库,数据表,查询数据表信息)

    今天,因为有朋友想要了解MongoDB的基本操作.所以,我就写一篇关于MongoDB的文章,占个坑以后有时间研究MongoDB再正式的写MongoDB的文章.关于MongoDB的安装,可以参考一下我的 ...

最新文章

  1. 微软将发布5月安全漏洞补丁 修补PPT
  2. undefined和null
  3. linux加密框架 crypto 算法管理 - 应用角度讲解加密框架的运行流程
  4. 创意or鸡肋?亚马逊想让智能音箱“手机”化
  5. C# CharacterToBinary 将类似2进制字符串 10010110111 转换为数值型源码
  6. FindFirstFile和FindNextFile
  7. php一行代码实现人脸识别,一行代码搞定人脸识别
  8. 高性能实现WORD转PDF(jacob1.19+SaveAsPDFandXPS)内附资源链接
  9. matlab猜数字游戏程序,matlab 猜数字小游戏
  10. 加密软件不能安装软件
  11. idea导入项目后,没有项目结构
  12. win10下装黑苹果双系统_小米笔记本pro黑苹果Win10双系统
  13. 非负矩阵分解 NMF 总结
  14. [转贴]给想立志入行网络或已经初入行的朋友的建议(一)
  15. linux系统外接硬盘_Linux添加硬盘和挂载
  16. APISpace 人像比对API
  17. Git常用命令、及常见报错处理:You have not concluded your merge (MERGE_HEAD exists)
  18. android10手机运行内存怎么查看,安卓手机怎么查看手机内存
  19. cshop是什么开发语言_客户端产品一般是用什么编程语言写的?
  20. 基于bp的神经网络算法,bp神经网络是什么算法

热门文章

  1. 如何搜索自己博客内的文章
  2. 2022.01.24翻译Lorry
  3. veu-cli 3.0使用教程
  4. Excel中去重并只保留最近n次日期/最大最小值的数据
  5. Mobile移动5G通信技术详解
  6. [深入理解Android卷一全文-第八章]深入理解Surface系统
  7. 如何删除微软拼音输入法2003
  8. Fibonacci数列的递推C语言详解:Fn=Fn-1+Fn-2
  9. 交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.doc
  10. Sevlet相关 摘抄笔记