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)
- 记录(document)
- 表(collection)
- 记录(document)
- 表(collection)
数据库的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表示一个