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 学习笔记--- 基础知识相关推荐

  1. go get 拉取指定版本_go语言学习笔记-基础知识-3

    相关文档 go语言学习笔记-目录 1.简介 1.1 什么是GO Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易.Go是从2007年末由Robert Griesemer, Rob ...

  2. Cracer渗透视频课程学习笔记——基础知识(1)

    常见的术语介绍 脚本(asp,php,jsp):可以编写动态网站的,浏览器右击查看不到,只能看到静态代码. html(css,js,html):解释语言,静态的,浏览器右击查看源码可以看到 HTTP协 ...

  3. 设计模式学习笔记-基础知识篇

    1. 设计模式的重要性 1.1 设计模式解决的是在软件过程中如何来实现具体的软件功能.实现同一个功能的方法有很多,哪个设计容易扩展,容易复用,松耦合,可维护?设计模式指导我们找到最优方案. 1.2 设 ...

  4. java学习笔记-基础知识-2023.3.29

    学习网站:https://www.sxt.cn/Java_jQuery_in_action/History_Direction.html 刷题网站 牛客网专题-spring java sql 第一章 ...

  5. mysql 实战 45讲 学习笔记 基础知识 原理剖析

    MySQL 实战45讲 持续更新中~ 00讲 开篇 我们知道如何写出逻辑正确的SQL语句来实现业务目标,却不确定这个语句是不是最优的 我们听说了一些使用数据库的最佳实践,但是更想了解为什么这么做 我们 ...

  6. Validform 学习笔记---基础知识整理

    面对表单的验证,自己写大量的js毕竟不是一个明智的做法.不仅仅是代码很长而且不便于梳理.Validform就是一款开源的第三方验证js的控件,通过添加相应的js以及css能够有效的验证表单,维护起来也 ...

  7. html css学习笔记~ 基础知识和页面显示的四个区域内容及display:flex 等常用的一些命令(手画)

    一般 在html文件中输入<link href=".../xxx.css" rel="stylesheet"/> 通过这样的外部样式联系 css & ...

  8. Spring学习笔记—基础知识总结

    一. Spring概述 1.spring框架是什么? spring是java的开源框架, 核心技术是ioc,aop. spring也是一个容器,容器放的是java对象. 通过spring框架可以实现解 ...

  9. k8s学习笔记——基础知识

    1.关于svc中ClusterIP的API格式 https://localhost:6443/api/v1/namespaces/$ns/services/$svc 前提是token具有相应访问权限 ...

  10. HTML学习笔记-基础知识整理

    VScode默认快捷键 VScode默认快捷键 ctrl + b 打开关闭侧边栏 ctrl + d 查找相同的代码 ctrl + z 撤销 ctrl + y 重做(取消撤销) ctrl + f 查找 ...

最新文章

  1. Android 自定义 —— View moveTo与 rMoveTo 的区别
  2. iOS使用Security.framework进行RSA 加密解密签名和验证签名
  3. 关于ios中编译ffmpeg0.9.2库
  4. 让Updatepanel中的控件触发整个页面Postback
  5. 通过命令删除在ambari界面上无法删除节点上服务
  6. 遍历 Dictionary,你会几种方式?
  7. GPU并行计算OpenCL(3)——图像处理
  8. linux shell for循环使用命令中读取到的值实例
  9. 排错-通过LLDP信息查找环路(以H3C S5100为例)
  10. gopher协议及ssrf
  11. IAP之boot实现
  12. 英语句子主干成分分析
  13. 防范于未“燃”|涂鸦智慧社区推出“黑科技”,电瓶车禁入电梯智慧方案
  14. python解椭圆方程的例题_《椭圆》方程典型例题20例(含标准答案)
  15. LA 3406 Bingo *
  16. 【图像超分辨率重建】——“SISR 中的Edge-Based 损失函数”论文精读
  17. vue 上实现无缝滚动播放文字系统公告
  18. Vue3.0报错:The component has been registered but not used vue/no-unused-components,关闭eslint
  19. ubuntu百度云盘打不开
  20. 关于HTML怎样用图片做背景

热门文章

  1. Nginx一个server主机上80、433http、https共存
  2. FileStream StreamWriter StreamReader BinaryReader
  3. 探究requestDisallowInterceptTouchEvent失效的原因
  4. 如何用PHP和JavaScript比较时期(包括时间)
  5. 《IT项目管理》读书笔记(5) —— 项目时间管理
  6. [Publish AAR To Maven] 使用 Gradle 发布 AAR 到 Maven 仓库
  7. POJ2002 Squares
  8. 使用nrm管理npm源的切换
  9. element-ui分页器的使用
  10. 小程序学习笔记(3)-模板的操作