MongoDB快速入门

虽说现在关系型数据库还是主流,但是面对某些需求的时候,需要非关系型数据库来补充它,学习一个主流的NoSQL数据库还是很有必要的。MongoDB是一个功能丰富的NoSQL数据库,本文整理了它最常用的部分形成了这篇入门教程,希望对大家有所帮助。

简介

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

安装

以前写的MongoDB安装教程是基于3.2版本的,发现有的朋友使用新版本安装有问题,这次我们使用最新版本再来安装一次,本文所使用的MongoDB版本为4.2.5,总的来说,新版本的安装更简单了。

Windows下的安装

  • 下载MongoDB安装包,选择Windows x64版本安装,下载地址:www.mongodb.com/download-ce…

MongoDB快速入门_第1张图片

相关概念

MongoDB是非关系型数据库当中最像关系型数据库的,所以我们通过它与关系型数据库的对比,来了解下它的概念。

SQL概念 MongoDB概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
primary key primary key 主键,MongoDB自动将_id字段设置为主键

数据库操作

  • 创建数据库,使用use命令去创建数据库,当插入第一条数据时会创建数据库,例如创建一个test数据库;
 
  

> use test switched to db test > db.article.insert({name:"MongoDB 教程"}) WriteResult({ "nInserted" : 1 }) > show dbs admin 0.000GB config 0.000GB local 0.000GB test 0.000GB

  • 删除数据库,使用db对象中的dropDatabase()方法来删除;
 
  

> db.dropDatabase() { "dropped" : "test", "ok" : 1 } > show dbs admin 0.000GB config 0.000GB local 0.000GB

集合操作

  • 创建集合,使用db对象中的createCollection()方法来创建集合,例如创建一个article集合;
 
  

> use test switched to db test > db.createCollection("article") { "ok" : 1 } > show collections article

  • 删除集合,使用collection对象的drop()方法来删除集合,例如删除一个article集合;
 
  

> db.article.drop() true > show collections

文档操作

上面的数据库和集合操作是在MongoDB的客户端中进行的,下面的文档操作都是在Robomongo中进行的。

插入文档

  • MongoDB通过collection对象的insert()方法向集合中插入文档,语法如下;
 
  

db.collection.insert(document)

  • 使用collection对象的insert()方法来插入文档,例如插入一个article文档;
 
  

db.article.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: 'Andy', url: 'https://www.mongodb.com/', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })

  • 使用collection对象的find()方法可以获取文档,例如获取所有的article文档;
 
  

db.article.find({})

{ "_id" : ObjectId("5e9943661379a112845e4056"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "Andy", "url" : "https://www.mongodb.com/", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100.0 }

更新文档

  • MongoDB通过collection对象的update()来更新集合中的文档,语法如下;

db.collection.update( , , { multi: } ) # query:修改的查询条件,类似于SQL中的WHERE部分 # update:更新属性的操作符,类似与SQL中的SET部分 # multi:设置为true时会更新所有符合条件的文档,默认为false只更新找到的第一条

  • 将title为MongoDB 教程的所有文档的title修改为MongoDB

db.article.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

  • 除了update()方法以外,save()方法可以用来替换已有文档,语法如下;

db.collection.save(document)

  • 这次我们将ObjectId为5e9943661379a112845e4056的文档的title改为MongoDB 教程

db.article.save({ "_id" : ObjectId("5e9943661379a112845e4056"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "Andy", "url" : "https://www.mongodb.com/", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100.0 })

删除文档

  • MongoDB通过collection对象的remove()方法来删除集合中的文档,语法如下;
 
  

db.collection.remove( , { justOne: } ) # query:删除的查询条件,类似于SQL中的WHERE部分 # justOne:设置为true只删除一条记录,默认为false删除所有记录

  • 删除title为MongoDB 教程的所有文档;

db.article.remove({'title':'MongoDB 教程'})

查询文档

  • MongoDB通过collection对象的find()方法来查询文档,语法如下;
 
  

db.collection.find(query, projection) # query:查询条件,类似于SQL中的WHERE部分 # projection:可选,使用投影操作符指定返回的键

  • 查询article集合中的所有文档;
 
  

  • MongoDB中的条件操作符,通过与SQL语句的对比来了解下;
操作 格式 SQL中的类似语句
等于 {:} where title = 'MongoDB 教程'
小于 {:{$lt:}} where likes < 50
小于或等于 {:{$lte:}} where likes <= 50
大于 {:{$gt:}} where likes > 50
大于或等于 {:{$gte:}} where likes >= 50
不等于 {:{$ne:}} where likes != 50
  • 条件查询,查询title为MongoDB 教程的所有文档;
 
  

你可能感兴趣的:(mongodb,数据库)