2、mongodb概念解析

来源:互联网 发布:mac无法解压zip 编辑:程序博客网 时间:2024/05/22 08:03

不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中的基本的概念是文档(document),集合(collection),数据库(db),后面我们会挨个介绍。下表将帮助你更容易理解Mongo中一些概念:

SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins 表连接,mongoDB不支持 primary key primary key 主键,mongoDB自动将_id字段设置为主键

1、数据库

一个mongodb中可以建立多个数据库。
MongoDB的默认数据库为”db”,该数据库存储在data目录中。
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

1) show dbs命令可以显示所有数据的列表。

show dbs

2) 运行”use”命令,可以连接到一个指定的数据库(如果没有这个名称的数据库会创建一个数据库)

use dbname

两个特殊的数据库:

local数据库,从名字可以看出,它只会在本地存储数据,即local数据库里的内容不会同步到副本集里其他节点上去;目前local数据库主要存储副本集的配置信息、oplog信息,这些信息是每个Mongod进程独有的,不需要同步到副本集种其他节点。

当Mongod启用auth选项时,用户需要创建数据库帐号,访问时根据帐号信息来鉴权,而数据库帐号信息就存储在admin数据库下。

2、集合

集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。

集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

比如:我们可以将以下不同数据结构的文档插入到集合中.

3、文档

文档是一个键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。

一个简单的文档例子如下:

{    "name" : "carl",    "sex" : "man"}

需要注意的是:

  1. 文档中的键/值对是有序的。
  2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
  3. MongoDB区分类型和大小写。
  4. MongoDB的文档不能有重复的键。
  5. 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

4、操作数据

1)插入文档

db.con.insert({name:"carl"});

所添加的数据只需要满足Bson格式就好了,而且对于同一个collection还可以这样添加:

db.test.insert({name:"carl", age : 26});

这样扩展性就比关系型数据库更高。
当然你也可以用这种姿势来插入:

for(var i = 0; i < 20; i++){db.test.insert({name:"carl", age : i})}

2) 更新文档

db.test.update({"_id" : ObjectId("57edcd015343349065b52043")},{$set:{"name":"carl"}})

相当于关系型数据库中的:

update test set name=’carl’ where id=57edcd015343349065b52043;

3) 删除文档
MongoDB remove()函数是用来移除集合中的数据。

db.test.remove({"_id" : ObjectId("57ecd3264099470558fa449d")})

相当于SQL:

delete from test where id = "57ecd3264099470558fa449d"

4) 查询文档
a、and

db.test.find({"age":18,"name":"carl"})

b、or

db.test.find({$or:[{"name":"carl"},{"_id" : ObjectId("57edcd0c5343349065b52044")}]})

c、< <= > >= <>
小于、小于等于、大于、大于等于、不等于

db.test.find({"age":{$lt:18}})db.test.find({"age":{$lte:18}})db.test.find({"age":{$gt:18}})db.test.find({"age":{$gte:18}})db.test.find({"age":{$ne:18}})

当然对于document还有更多的操作,你可以查看官网 :MongoDB CRUD

0 0
原创粉丝点击