Mongo是面向文档的数据库,下面是一些基本概念。
名称 | 表示符号 | 介绍 |
数据库 | db | 是一个物理容器集合,每个数据库有自己的一套文件系统上的文件。一个Mongo服务器通常有多个数据库 |
集合 | collection | 相当于表,集合内的文档可以有不同的领域。 |
文档 | document | 是一组键值对。相同集合中的文档不需要有相同的字段或结构组的公共字段的集合的文档,可以容纳不同类型的数据 |
下面给出的表显示RDBMS术语使用 MongoDB 的关系
RDBMS | MongoDB |
---|---|
Database | Database |
Table | Collection |
Tuple/Row | Document |
column | Field |
Table Join | Embedded Documents |
Primary Key | Primary Key (Default key _id provided by mongodb itself) |
数据库服务器和客户端 | |
Mysqld/Oracle | mongod |
mysql/sqlplus | mongo |
1. 显示有哪些数据库
show dbs
2.创建数据库/转到某个数据库
use DATABASE_NAME
DATABASE_NAME是数据库的名称
如果该数据库己存在,则会转到该数据库。如果不存在则会创建。
检查当前选择的数据库
db
3.显示所有的集合
show collections
4.创建一个新的集合
db.createCollection(name,option)
name 是要创建的集合的名称. Options (可选)是一个文件,用于指定配置的集合
例:
>use test switched to db test >db.createCollection("mycollection") { "ok" : 1 } >
>db.yiibai.insert({"name" : "yiibai"}) >show collections mycol mycollection system.indexes yiibai >
5.插入数据到集合
要插入数据到 MongoDB 集合,需要使用 MongoDB 的 insert() 或 save() 方法。
db.COLLECTION_NAME.inset(document)
例:
>db.mycol.insert({ _id: ObjectId(7df78ad8902c), title: 'MongoDB Overview', description: 'MongoDB is no sql database', by: 'tutorials yiibai', url: 'http://www.yiibai.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
这里 mycol 是集合的名称,如前面的教程中创建。如果集合在数据库中不存在,那么MongoDB 将创建此集合,然后把它插入文档。
插入文档中,如果我们不指定_id参数,然后MongoDB 本文档分配一个独特的ObjectId。
_id 是12个字节的十六进制数,唯一一个集合中的每个文档。 12个字节被划分如下:
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
要插入单个查询的多个文档,可以传递一个数组 insert() 命令的文件。
示例
>db.post.insert([ { title: 'MongoDB Overview', description: 'MongoDB is no sql database', by: 'tutorials yiibai', url: 'http://www.yiibai.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }, { title: 'NoSQL Database', description: 'NoSQL database doesn't have tables', by: 'tutorials yiibai', url: 'http://www.yiibai.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 20, comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2013,11,10,2,35), like: 0 } ] } ])6.查询数据
要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法。
语法
基本的find()方法语法如下
>db.COLLECTION_NAME.find()
find() 方法将在非结构化的方式显示所有的文件。
pretty() 方法
结果显示在一个格式化的方式,可以使用 pretty() 方法.
语法:
>db.mycol.find().pretty()
例子
>db.mycol.find().pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials yiibai", "url": "http://www.yiibai.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" } >
查看更多帮助:http://www.yiibai.com/mongodb/mongodb_query_document.html