美文网首页
MongoDB基础学习笔记

MongoDB基础学习笔记

作者: let423 | 来源:发表于2019-01-15 22:58 被阅读0次

基础知识

特点
  • 是一个面向文档存储的数据库,操作起来比较简单和容易
  • 可以在 MongoDB 记录中设置任何属性的索引值
  • 可以通过本地或者网络创建数据镜像
一些术语
SQL术语 MongoDB术语 说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins - 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键
数据库
  • 一个 MongoDB 可以建立多个数据库
  • "show dbs"可以显示所有数据的列表
  • 数据库不能是空字符串、不得含有空格、空字符
  • 应全部小写
  • 最多64字节
  • 特殊数据库:admin、local、config
文档
  • 文档是一组键值对(BSON)
  • take care:
(1) 文档中的键值对是有序的
(2) 文档中的值不仅可以是字符串,也可以是其它几种数据类型
(3) MongDB 的文档不能有重复的键
(4) MongoDB 区分类型和大小写
(5) 文档的键是字符串,除了少数例外的情况,键可以使用任意UTF-8字符
  • 文档键命名规范
(1)不能含有空字符,这个字符用来表示键的结尾
(2). 和 $ 有特别的意义,只有在特定环境下才能使用
(3)以下划线开头的键是保留的
集合
  • 集合就是MongoDB的文档组
  • 集合存在于数据库,没有固定的结构
objectId
  • 类似唯一地主键,可以很快去生成和排序,包含了12bytes, 4时间戳--3机器标识码--2PID--3随机数
  • 可以通过getTimestamp函数来获取到文档的创建时间
# 取文档的创建时间:
> var newObject = ObjectId()
> newObject.getTimestamp()
ISODate("2017-11-25T07:21:10Z")

# ObjectId转为字符串:
> newObject.str
5a1919e63df83ce79df8b38f

相关操作

MongoDB创建数据库
  1. 创建数据库
> use mydatabase
switched to db runoob
> db
mydatabase
>
  1. 查看数据库
> show dbs
> db
MongoDB删除数据库
  1. db.dropDatabse()
  2. db.collecion.drop() 删除集合,其中collection是集合的名字
MongoDB创建集合
  1. db.createCollection(name, options)
    name 要创建的集合名称
    options 指定有关内存大小以及索引的选项
  2. 在MongoDB中,不需要创建集合,当需要插入文档时,MongoDB会自动创建集合
MogonDB删除集合
  1. db.collection.drop()
    返回值:删除成功返回true,否则返回false
  2. show collcetions 查看已存在的集合
MongoDB插入文档
  1. 使用insert()或save()方法向集合中插入文档
db.COLLECTION_NAME.insert(document).insert(document)
MongoDB更新文档
  1. update()用于更新已经存在的文档
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
})


>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
  1. save() 方法通过传入的文档来替换已有文档
db.collection.save(
<document>,
{
writeConcern: <document>
})
>db.col.save({
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110})
MongoDB删除文档
  1. remove()函数是用来移除集合中的数据
  2. 语法:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
})
MongoDB查询文档

db.collection.find() 以非结构化的方式来显示所有文档
db.collection.find().pretty() 以易读的方式来读取数据
db.collection.findOne() 只返回一个文档

  1. MongoDB与RDBMS where语句比较
操作 格式 范例 RDBMS中的类似语句
等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50
  1. MongoDB AND条件
>db.col.find({key1:value1, key2:value2}).pretty()
  1. MongoDB OR条件
>db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
  1. AND和OR联合使用
>db.col.find({"likes": {$gt:50}, $or: [{"by": "someone"},{"title": "MongoDB 教程"}]}).pretty()
MongoDB条件操作符
符号 解释
$gt 大于
$lt 小于
$gte 大于等于
$lte 小于等于
MongoDB Limit与Skip方法
  1. limit() 在MongoDB中读取指定数量的数据记录
>db.COLLECTION_NAME.find().limit(NUMBER)
  1. skip() 来跳过指定数量的数据,接受一个数字参数作为跳过的记录条数,skip()方法默认参数为0
>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
MongoDB 排序

1.sort () 方法可以通过指定参数指定排序的字段, 并使用 1-1 来指定排序的方式,其中 1 为升序排序,-1 为降序排序

2.语法:

>db.COLLECTION_NAME.find().sort({KEY:1})
MongoDB 索引
  1. 索引的作用:能够极大的提高查询的效率
  2. 创建索引:createIndex()
>db.collection.createIndex(keys, options)

说明:key值为要创建的索引字段,1为按升序创建索引,-1为按降序创建索引

MongoDB 聚合
  1. MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和),并返回计算后的数据结果。
  2. 语法:
>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
学习链接

官方文档:https://docs.mongodb.com/
菜鸟教程:http://www.runoob.com/mongodb/mongodb-tutorial.html

相关文章

  • MongoDB基础学习笔记

    基础知识 特点 是一个面向文档存储的数据库,操作起来比较简单和容易 可以在 MongoDB 记录中设置任何属性的索...

  • MongoDB 学习笔记—基础篇

    首先安装好 MongoDB 数据库并启动它,然后进入用 CMD 命令进入到 ${MONGODB_HOME}/bin...

  • 收藏笔记

    Mongoose增查改删学习笔记 mongodb联查 程序员必须知道的10大基础实用算法及其讲解(Javascri...

  • MongoDB文档

    MongoDB文档 MongoDB 概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基...

  • MongoDB基础笔记

    自己看相关视频总结的,笔记粗糙。暂时够用,需要再查官方文档RDBMS:关系型数据库 nosql:非关系型数据库 插...

  • MongoDB基础笔记

    outline MongoDB常用命令 MongoDB的CRUD 索引 MongoDB的安装 踩坑记录 Mongo...

  • NoSQL and Cloud Service国外网站学习指南

    1. MongoDB University 最棒的MongoDB学习网站没有之一,基础课程只需3周的时间,总计学习...

  • MEAN Stack - Intro MongoDB and N

    该文章为网络课 Introduction to MongoDB using the MEAN Stack学习笔记。...

  • 20160919学习笔记 Node.js操作MongoDB

    20160919学习笔记 Node.js操作MongoDB insert find update remove

  • MEAN Stack - MongoDB

    该文章为网络课 Introduction to MongoDB using the MEAN Stack学习笔记。...

网友评论

      本文标题:MongoDB基础学习笔记

      本文链接:https://www.haomeiwen.com/subject/atnudqtx.html