mongodb 学习笔记--- 基础知识
1.mongodb的安装
(1) mac使用brew 安装就好 brew install mongodb
(2) mkdir /data/db 作为mongodb默认的数据目录 并 sudo chown -R $(whoami) /data/db 赋予其权限
2.mongodb 命令行(分为2步)
(1)无密码的初始状态:
a.直接执行 mongod 开启mongodb的连接
b.打开另一个命令行窗口 执行 mongo 进入命令行
(2)存在用户密码的正常管理状态:
3.一些名词
(1)文档 作为mongodb中数据组织的最基层,相当于关系型数据库中的 行。 就是js中的一个对象的json.stringify ,不过不同于js对象的是,文档中key-value 是有顺序的,{"x":1,"y":2} 和 {"y":2,"x":1}是不相同的
(2) 集合 由若干文档组成的数据集,相当于关系型数据中的表。建议在创建集合的时候将同种类型结构的文档放入同一集合中,这样能减少相应的磁盘寻道操作。集合在命名时不要用system.开头,且其中不能出现 [空字符,$]
(3)数据库 由若干集合组成的数据集。 命名时正常命名就好,除了[admin,local,config]外,最长为64字节,建议全部小写
(4) 命名空间 用于表示一个集合的完全限定名,形式为:数据库名称.集合名称
(5) 基本数据类型: null
布尔
数值:默认使用64位浮点,想表示整数时用NumberInt("2"),NumberLong("2")
字符串
日期 : 根据shell本地时间显示日期对象,存储时为字符串,但实际是日期对象
正则
数组
内嵌文档
对象id : ObjectId() 用于创建文档的唯一标识,如果不创建系统会自动创建_id字段
二进制数据
js代码
4. 基本数据库操作
(1)db 查看当前db名称
(2) show dbs 查看当前所有db
(3)use [dbname] 进入此db 当db不存在时临时会创建一个,但是show dbs并不会展示该数据库,只有在插入实际数据后才会存在。
(4) show collections 显示当前db下的所有集合
(5) help 查看其余命令(还是很有用的)可以db.help() 查看db可用的方法,db.[集合名].help() 发现集合中的方法 剩余方法不再介绍,查看help就会有收获
5. CRUD等文档操作
(1) 插入文档: insert 只需要在 db(即当前数据库).集合.insert({...})即可,批量操作时传入文档的数组。单个文档大小限制为16MB,可以通过Object.bsonsize方法查看。
(2) 查询文档:db.集合名称.find() 查询出所有文档。 当给find传参为文档的某一个或多个key-value 时查询出符合条件的文档 如 find({"age":15,"name":"jack"})。
db.集合名称.findOne() 查询出第一条文档。传参同上
(3) 更新文档: db.集合名称.update(kv条件,文档) 这里第二个参数会完全将符合条件的文档覆盖,并不会片段更新, 传入第三个参数为true时,为upsert操作:有就更新,没有新增; 传入第四参数为true时,全部更新满足条件的文档
(4) 删除文档:db.集合名称.remove({...}) 传入空对象时全删,传了条件只删除满足条件的。删除是永久的,不能恢复
(5) 综合操作: save: 如果传入的文档参数带有_id 则update,如果没有则insert
6.shell 执行js脚本
mongo /xxx/xx.js /yyy/yyy,js 即可,脚本内容如下
// 脚本1 var data = [{"name":"peter","age":13},{"name":"mary","age":14} ]; db = db.getSisterDB("test"); db = db.getSisterDB("foobar"); db.people.insert(data);// 脚本2 // db = db.getSisterDB("test"); // db = db.getSisterDB("foobar"); 此处再写就是多余,两个脚本是上下承接关系,不用再重新指定db db.people.update({"age":14},{"name":"kaka","age":14})
也可以在shell中使用load函数运行外部脚本:load(/xxx/xxx.js) 这里的路径必须为绝对路径,无法解析~ 符号
用run("ls","-a","/xxx/xxx") 执行命令行命令,不过这么用很别扭
7.其他
(1) .mongorc.js 会存在于用户根目录下,mac中就是 ~/下,里面的脚本会在启动shell时执行
转载于:https://www.cnblogs.com/JhoneLee/p/9188579.html
mongodb 学习笔记--- 基础知识相关推荐
- go get 拉取指定版本_go语言学习笔记-基础知识-3
相关文档 go语言学习笔记-目录 1.简介 1.1 什么是GO Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易.Go是从2007年末由Robert Griesemer, Rob ...
- Cracer渗透视频课程学习笔记——基础知识(1)
常见的术语介绍 脚本(asp,php,jsp):可以编写动态网站的,浏览器右击查看不到,只能看到静态代码. html(css,js,html):解释语言,静态的,浏览器右击查看源码可以看到 HTTP协 ...
- 设计模式学习笔记-基础知识篇
1. 设计模式的重要性 1.1 设计模式解决的是在软件过程中如何来实现具体的软件功能.实现同一个功能的方法有很多,哪个设计容易扩展,容易复用,松耦合,可维护?设计模式指导我们找到最优方案. 1.2 设 ...
- java学习笔记-基础知识-2023.3.29
学习网站:https://www.sxt.cn/Java_jQuery_in_action/History_Direction.html 刷题网站 牛客网专题-spring java sql 第一章 ...
- mysql 实战 45讲 学习笔记 基础知识 原理剖析
MySQL 实战45讲 持续更新中~ 00讲 开篇 我们知道如何写出逻辑正确的SQL语句来实现业务目标,却不确定这个语句是不是最优的 我们听说了一些使用数据库的最佳实践,但是更想了解为什么这么做 我们 ...
- Validform 学习笔记---基础知识整理
面对表单的验证,自己写大量的js毕竟不是一个明智的做法.不仅仅是代码很长而且不便于梳理.Validform就是一款开源的第三方验证js的控件,通过添加相应的js以及css能够有效的验证表单,维护起来也 ...
- html css学习笔记~ 基础知识和页面显示的四个区域内容及display:flex 等常用的一些命令(手画)
一般 在html文件中输入<link href=".../xxx.css" rel="stylesheet"/> 通过这样的外部样式联系 css & ...
- Spring学习笔记—基础知识总结
一. Spring概述 1.spring框架是什么? spring是java的开源框架, 核心技术是ioc,aop. spring也是一个容器,容器放的是java对象. 通过spring框架可以实现解 ...
- k8s学习笔记——基础知识
1.关于svc中ClusterIP的API格式 https://localhost:6443/api/v1/namespaces/$ns/services/$svc 前提是token具有相应访问权限 ...
- HTML学习笔记-基础知识整理
VScode默认快捷键 VScode默认快捷键 ctrl + b 打开关闭侧边栏 ctrl + d 查找相同的代码 ctrl + z 撤销 ctrl + y 重做(取消撤销) ctrl + f 查找 ...
最新文章
- Android 自定义 —— View moveTo与 rMoveTo 的区别
- iOS使用Security.framework进行RSA 加密解密签名和验证签名
- 关于ios中编译ffmpeg0.9.2库
- 让Updatepanel中的控件触发整个页面Postback
- 通过命令删除在ambari界面上无法删除节点上服务
- 遍历 Dictionary,你会几种方式?
- GPU并行计算OpenCL(3)——图像处理
- linux shell for循环使用命令中读取到的值实例
- 排错-通过LLDP信息查找环路(以H3C S5100为例)
- gopher协议及ssrf
- IAP之boot实现
- 英语句子主干成分分析
- 防范于未“燃”|涂鸦智慧社区推出“黑科技”,电瓶车禁入电梯智慧方案
- python解椭圆方程的例题_《椭圆》方程典型例题20例(含标准答案)
- LA 3406 Bingo *
- 【图像超分辨率重建】——“SISR 中的Edge-Based 损失函数”论文精读
- vue 上实现无缝滚动播放文字系统公告
- Vue3.0报错:The component has been registered but not used vue/no-unused-components,关闭eslint
- ubuntu百度云盘打不开
- 关于HTML怎样用图片做背景
热门文章
- Nginx一个server主机上80、433http、https共存
- FileStream StreamWriter StreamReader BinaryReader
- 探究requestDisallowInterceptTouchEvent失效的原因
- 如何用PHP和JavaScript比较时期(包括时间)
- 《IT项目管理》读书笔记(5) —— 项目时间管理
- [Publish AAR To Maven] 使用 Gradle 发布 AAR 到 Maven 仓库
- POJ2002 Squares
- 使用nrm管理npm源的切换
- element-ui分页器的使用
- 小程序学习笔记(3)-模板的操作