美文网首页我爱编程
MongoDB 快速上手

MongoDB 快速上手

作者: Paycation | 来源:发表于2018-05-23 21:11 被阅读26次

说在前面

虽然汉语是母语,理解起来比较快速。但是有时候有些常用词没有必要翻译,翻译了反而造成不必要的麻烦,mongodb 里面的关键性的术语,我都不会翻译,直接用英文。写成全英文,不是不可以,只是始终读起来反应速度要比读中文慢一点,即使是我自己写的英文。

基本概念

参考文献:https://docs.mongodb.com/manual/introduction/

mongo 是文档型数据库,其数据结构都是 field + value 的键值对的形式。外形类似于 JSON,但其实是 BSON 格式(也就是二进制的 JSON,其中,BSON 的字符串采用 UTF-8 编码)。 一个 BSON document 所有的 BSON document 被存放在 collection 里。然后 collection 放在数据库里。 一个 collection

运行 mongo,进入交互界面。首先在命令行里熟悉一下:

help;
show dbs; # 显示所有数据库
use db_name; # 切换或者创建数据库
# 再次 show dbs 不会显示这个新数据库,需要插入数据才行

插入数据前,先建立 collection。

db.createCollection('staff')

插入单条的 document:

db.staff.insertOne({'name': 'Sue', 'age': 29})

插入多条 ducuments:

db.staff.insertMany([
    {'name': 'Eloisa', 'age':27},
    {'name': 'Brandy', 'age':26},
    {'name': 'Dora', 'age': 24, 'gender': 'female'}
])

值得一提的是,就算突然多加入了一个 field 也不会对原有数据造成影响。
这是查找 Dora 这条数据的两个方法。

db.staff.find({'name':'Dora'})
db.staff.find({'gender':'female'})

唯一索引

作用就是防止添加含有重复的键的数据到数据库。例如确保 collection "lagou_items" 的键 "positionId" 保持唯一。只看键是否重复,不看值。

db.lagou_items.createIndex({'postionId': 1}, {'unique': true})
db.lagou_items.insertOne({'positionId': 666}) # 正常
db.lagou_items.insertOne({'positionId': 888}) # 报错 E11000 duplicate key error collection

PyMongo

参考文献:http://api.mongodb.com/python/current/tutorial.html

和本地的 mongo 数据库连接。

from pymongo import MongoClient
client = MongoClient()
client.database_names() # 返回现有的数据库
# ['admin', 'config', 'local', 'weng']
db = client.weng # weng 是一个 db 的名字

插入数据。和 mongo 本身的写法非常相似,但是 insert_one 的命名方式延续了 Python 的风格。注意这里插入的不是 JSON 或 BSON,而是 dict 对象。

db.jobs.insert_one({'Michael': 25}) # 返回

新插入的数据默认情况下自带一个 _id 字段。我先来试着搜一下刚刚放进去的数据:

>>> db.staff.find_one()
{'_id': ObjectId('5b05602efc68c46bb1aa61e9'), 'age': 29.0, 'name': 'Sue'}

>>> db.staff.find_one({'name':'brandy'})

>>> db.staff.find_one({'name':'Brandy'})
{'_id': ObjectId('5b0560d1fc68c46bb1aa61eb'), 'age': 26.0, 'name': 'Brandy'}

从上面可以看出,find_one 无参数时返回整个 collection 的第一项。查询的时候是区分大小写的。

以上都是最最基础的几条命令,学会了之后继续拓展只是一个查文档+重复+记忆的过程了。此外,还有必要刻意比较一下 sql 和 nosql 数据库的差异。来日却来理会。

Until then,
Happy hacking!

相关文章

  • MongoDB 快速上手

    说在前面 虽然汉语是母语,理解起来比较快速。但是有时候有些常用词没有必要翻译,翻译了反而造成不必要的麻烦,mong...

  • MongoDB快速上手

    本章我将带你一步一步上手MongoDB,你将学习到:MongoDB 基本配置过程MongoDB 最常用的查询语言j...

  • mongodb快速上手

    mongodb作为非关系型数据库,存储的数据类JSON数据结构 1. 下载安装 2. 启动服务 3. shell基...

  • mongoose学习笔记

    快速上手 前提 安装 MongoDB 和 Node.js 本次学习的 mongoose 版本是 5.4 Mongo...

  • 如何在 Windows 上安装 MongoDB

    MongoDB C# Driver 管理快速入门指南MongoDB C# Driver 快速入门指南Windows...

  • 快速上手mongoose操作mongoDb数据库

    node的后台开发 node基于v8内核的让js运行的特性,让后台开发成为了可能。而mongoose让我们可以用的...

  • Masonry介绍与使用实践:快速上手Autolayout

    Masonry介绍与使用实践:快速上手Autolayout Masonry介绍与使用实践:快速上手Autolayout

  • Spring Boot-web开发详解

    之前有一篇文章介绍了如何快速上手Spring Boot:如何快速上手Spring Boot?,方便大家快速入门、了...

  • Spring Boot 中使用 MongoDB 增删改查

    本文快速入门,MongoDB 结合SpringBoot starter-data-mongodb 进行增删改查。 ...

  • 快速上手

    在现今快速发展的时代,无论是工作中还是生活上,经常会遇到新领域,有可能是新学科、新行业、新项目,也可能新部门、新...

网友评论

    本文标题:MongoDB 快速上手

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