MongoDB基本语法:增删改查

MongoDB是非关系型的数据库,NoSQL数据库。
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。

在现代的计算系统上每天网络上都会产生庞大的数据量。这些数据有很大一部分是由关系数据库管理系统(RDMBSs)来处理。
1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。
通过应用实践证明,关系模型是非常适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和商务应用的主导技术。

数据库对比

SQL术语 MongoDB术语 对比
database database 数据库
table collection 数据库表、集合
row document 数据记录行、文档
column field 数据字段、域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键

增删改查

非授权的方式启动数据库:

C:\Windows\system32>mongod --config c:\MongoDB\etc\mongo.conf

进入到mongo终端

C:\Windows\system32>mongo

查看数据库


创建一个数据库,不插入集合看不到数据库


1.增

创建集合(等价于创建一个表名为user的集合),,此时才可以看到数据库


另一种创建集合方式,且插入数据,集合中的字段是分类型的,插入的数字查找的时候也需要是数字,字符串同理


查看当前数据库集合


删除集合


删除数据库,删除的是当前数据库,如果想删除其他的数据库需要use到其他数据库删除


查看当前数据库指定集合下的所有数据,加pretty()格式化数据


查看当前数据库指定集合下的第一条数据


2.改

修改更新集合中用户名为miumiu的用户的年龄为100


修改更新集合中子文档,注意:子文档的key要叫引号包起来

修改用户名为miumiu的用户的班级名称为xxx

3.查

根据条件查询集合中的值,加pretty()格式化数据


根据子文档的条件查询集合中的值,注意加引号


查询年龄大于30的结果

$gt大于 $lt小于 $eq等于 $gte大于等于

4.删

删除集合中的数据






-----------------------------------分割线-----------------------------------



写数据

const Person = require('../dbs/models/person')

router.post('/addPerson',async function (ctx) {
  const person = new Person({
    name:ctx.request.body.name,
    age:ctx.request.body.age
  })
  try{
    await person.save()//person实例
  }catch(e){
    code = 1
  }
  ctx.body = {
    code:code
  }
})

module.exports = router

读数据

router.post('/getPerson',async function (ctx) {
  const result = await Person.findOne({name:xtx.request.body.name})
  const results = await Person.find({name:xtx.request.body.name})
  //Person模型,模型具备读写能力 理解为静态方法
  ctx.body = {
    code:0,result,results
  }
})

修改

router.post('/upsatePerson',async function (ctx) {
  const result = await Person.where({
    name:xtx.request.body.name
  }).update({
    age:ctx.request.body.age
  })
  ctx.body = {
    code:0
  }
})

删除

router.post('/removePerson',async function (ctx) {
  const result = await Person.where({
    name:xtx.request.body.name
  }).remove()
  ctx.body = {
    code:0
  }
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容