数据库-2

153 阅读3分钟

mongodb数据库是什么

数据库:数据库是结构化信息的集合。数据库系统包含两方面:

1.库 2.库的管理系统

Collection(表)

表是用来存储数据,一个数据库里可以有多个表。一个表就是document的集合。表里存储的是一条一条的记录,这个记录被称为"document"

document(记录):表示一条数据的记录。在MongoDB数据库中,document通常存储着一个对象。

MongoDB是一种NOSQL风格的数据库

  • Not Only SQL 不仅仅是结构化查询语言

SQLServer和mySQL都属于SQL(结构化查询语言)风格的数据库

BOSN:

Binary JSON的缩写。翻译:二进制存储的JSON

MongoDB数据库由以下几部分构成

  • 数据库(Database)
    • 表(collection)
      • 记录(document)
        • 字段
        • 字段
      • 记录(document)
    • 表(collection)
      • 记录(document)

数据库的CRUD操作

C:Create 增

R:Retrieve 查

U:Update 更新

D:Drop 删除

db.collection.inserOne()

定义:用于向数据库表里添加一条记录

语法:

db.表名.inserOne({})//参数的语法符合JS对象的语法

返回值:返回一个对象,该对象有两个属性

{
    acknowledge:boolean,//true表示数据被认可
	insertedIds: ObjectId('字符串id')//由系统自动分配的该记录id
}

db.collection.inserMany()

定义:用于向数据库表里添加一组记录

语法:

db.表名.inserMany([{document},{document},{document}])//参数的语法符合js对象的语法

返回值:返回一个对象,该对象有两个属性

{
    acknowledge:boolean,//true表示数据被认可
	insertedIds: ObjectId('字符串id')//由系统自动分配的该记录id
}

db.collection.find()

定义:用于检索/查询数据库表里的记录

语法:

db.表名.find()//无参数  , 检索表中的全部记录 。 默认每次最多20条记录
# 查看下一组20条数据
it//只需输入it,回车就可以翻页(it:iterate 	迭代)
db.表名.find({queryobject})//queryObject:查询条件对象   按条件检索

返回值:返回检索的数据记录

示例:

db.collection.find({字段})

用法:

1.insertOne() 可以同时插入多个文档

2.insertMany() 将数组中的每个文档插入集合中

3.find():查询所有

4.find({字段1})单条件查询

5.find({字段1,字段2}) 多条件查询

6.find({条件查询对象},{检索限制对象})

7.find({},{title:1,content:1})

  findOne({条件查询对象})返回匹配到的第一条记录
  

8.db.表名.deleteMany({}) 删除多条记录

9.db.表名.deleteOne() 删除单挑记录

10.db.表名.find().count() 查询记录条数

11.db.表名.find().limit(3) 查询指定的条数

字段

字段就是字段名:字段值

{
字段名1: 字段值1,
字段名2: 字段值2,
title: '标题'
}

db.collection.find().sort({字段名:-1})

  • 1 升序排列
  • -1 降序排列

操作符

MongoDB中提供了许多操作符,操作符的表示:$开头

操作符是字段名

$操作符:()
  • $gt:大于过滤器
  • $lt:小于
  • $gte:大于等于
  • $lte:小于等于
  • $or:或 (满足其中一个字段的元素数据)
  • $set:设置
  • $and 且
  • $in 包含 (满足其中一个元素的数据)
  • $nin 不包含

$gt语法

db.collection.find({字段名:{$gt:字段值}})

$lt语法

db.collection.find({字段名:{$lt:字段值}})

$gte语法

db.collection.find({字段名:{$gte:字段值},author:"张三"})

$or语法

db.collection.find({$or:[{author:"小米"},{author:"小王"}]})

$and语法

db.collection.find({$and:[{author:"小米"},{like:100}]})

$in语法

db.collection.find({like:{$in:[100,488,788]}})

$nin语法

db.collection.find({like:{$nin:[100,488,788]}})

db.collection.updateOne({更新哪个},{更新内容}

定义:用于更新一条数据

db.collection.updateOne({_id: ObjectId("640fe6b8ec6bf627e52322a9")},{$set:{author:"大米",like:1200}})
db.collection.updateOne({author: '小米',},{更新内容}

db.collection.updateMany()

定义:用于更新多条数据

db.collection.updateMany({author:"张三"},{$set:{author:"老王"}})

db.collection.updateMany({},{$set:{"phone":'17872605311'}},b1,b2)

  • b1:为true时表示,在没有匹配到记录时创建一个新的记录,false:不创建新记录
  • b2:为true表示批量,false表示一个

db.collection.updateMany({},{$set:{"phone":'17872605311'}},b1,b2)