0
点赞
收藏
分享

微信扫一扫

flutter开发实战-常用的路由Route配置

做个橙梦 2023-07-13 阅读 72

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

简介

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

安装

Windows下的安装

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

相关概念

SQL概念MongoDB概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
primary keyprimary 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通过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( <query>, <update>, { multi: <boolean> } ) # 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( <query>, { justOne: <boolean> } ) # 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中的类似语句
等于{<key>:<value>}where title = 'MongoDB 教程'
小于{<key>:{$lt:<value>}}where likes < 50
小于或等于{<key>:{$lte:<value>}}where likes <= 50
大于{<key>:{$gt:<value>}}where likes > 50
大于或等于{<key>:{$gte:<value>}}where likes >= 50
不等于{<key>:{$ne:<value>}}where likes != 50
  • 条件查询,查询title为MongoDB 教程的所有文档;
 

举报

相关推荐

0 条评论