MongoDB 系列文章:
在介绍 MongoDB 的具体操作和使用之前,有必要介绍一些 MongoDB 的基本概念,有了这些基础和知识铺垫,后面的操作,才会掌握的更扎实,理解的更透彻。
MongoDB 数据库跟关系数据库不太一样,有三个基本概念:文档,集合和库。分别对应于关系数据库的记录、表和库。库一定有一个磁盘文件来对应。MongoDB 数据库把文档存在集合中。集合中的文档,不需要有相同的结构,每个文档都可以有不同的结构。这使得 MongoDB 比传统的 RDBMS 更灵活,因为你不用预先定义结构。
文档是 MongoDB 的核心概念,文档是操作数据库的最小单元。首先,看看文档长啥样子吧。文档其实就是 JavaScript 中的对象字面量,也就是键值对。正是因为 MongoDB 的文档就是 JavaScript 中的对象字面量,所以,MongoDB 才成为 Node.js 应用开发的首选数据库系统,因为他非常简单和直观,非常容易上手。
下面通过几个文档的例子,来介绍文档的规则:
文档的键/值对是有序的,内容相同,但顺序不同的键/值对是不同的文档;
{ "greeting": "hello world", "foo": 3 } { "foo": 3, "greeting": "hello world" }
文档中的值不仅可以使双引号的字符串,还可以是其他数据类型,例如:整数、null、布尔值、浮点数、二进制数据、数组,代码,等等,甚至可以是嵌入的文档;
{ "null": null, "boolean": true, "integer": 32, "string": "hello", "float": 3.14, "date": new Date(), "code": function() { console.log('hello'); }, "array": [1, 3, 5, 7] }
- 文档的键是字符串,除了极少数情况,键可以使任意 utf-8 字符;
- 键不能含 0(空字符),这个字符用来表示键的结尾;
- . 和 $ 有特别的意义,一般情况下不建议使用;
- 下划线开头的键是保留的,一般情况下不建议使用;
文档中的键/值不但区分类型,还区分大小写;
{ "foo": 3 } { "foo": "3" } { "foo": 3 } { "Foo": 3 }
文档中不能用重复的键;
{ "greeting": "hello world", "greeting": "hello MongoDB" }
下面介绍一下基本的 Shell 操作,在 MongoDB 的数据库中完成文档的增、删、改、查四个操作。等你了解这这些命令或者函数,你再尝试在 JavaScript 脚本代码中操作数据库,你会发现这种 API 非常容易上手。
$ mongo
> use todo # 切换数据库,如果数据库不存在则创建,有则切换
> db # 查看当前的数据库
> db.todo.insert(data) # 在 todo 集合中插入数据,数据是上面介绍的一个合法的文档
# 例如:
> db.todo.insert({"item": "play football"})
> db.todo.find() # 返回集合中的所有文档
> db.todo.findOne() # 返回集合中的一个文档
> db.todo.update(old, new) # 将旧文档换成新文档
> db.todo.remove(old) # 删除旧文档
更多的命令用法,请参考文档:MongoDB 基本操作
小结:
其实 Shell 的 API 和 JavaScript 编程的 API 完全相同,增、删、改、查,就是四个单词,insert, remove, update, find。
如果这个文章对你有用,请点赞并收藏!