一、基本概念
1:文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库管理系统中的行
2:集合(collection)可以看做是一个拥有动态模式(dynamic schema)的表
3:MongoDB的一个实例可以拥有多个相互独立的数据库,每一个数据库拥有自己的集合
4:每一个文档都有一个特殊的键"_id",这个键在文档所属的集合中是唯一的。
5:MongoDB自带JavaScript shell,可用于管理MongoDB的实例或数据操作
 
可以看两张图,比较好理解,这是从 http://www.runoob.com/ 这里看到的
 
 

 

 
 
二、shell基本操作
四种基本操作:创建、读取、更新、删除,就是平常说的增删改查
1):创建    insert函数可将一个文档添加到集合中,如:
    > show dbs;
admin .000GB
local .000GB
> use testdb;
switched to db testdb
> post={"title":"My Blog Post",
... "content":"HaHa",
... "date":new Date()}
{
"title" : "My Blog Post",
"content" : "HaHa",
"date" : ISODate("2017-07-07T03:20:44.698Z")
}
> db.blog.insert(post)
WriteResult({ "nInserted" : })
> db.blog.find()
{ "_id" : ObjectId("595efe1af713ea7372854b9c"), "title" : "My Blog Post", "content" : "HaHa", "date" : ISODate("2017-07-07T03:20:44.698Z") }
2)读取: find和findOne方法用于查询集合里的文档,若只想看一个文档,可以用findOne,上面例子的查询
      find查询的时候最多显示20个匹配的文档
    > db.blog.findOne()
{
"_id" : ObjectId("595efe1af713ea7372854b9c"),
"title" : "My Blog Post",
"content" : "HaHa",
"date" : ISODate("2017-07-07T03:20:44.698Z")
}
3)更新: 使用update修改,update接受至少两个参数,第一个是限定条件(用于匹配待更新的文档),第二个是新的文档。假设,在刚刚的基础上,添加评论功能,使用数组存储
    > post.comments=[]
[ ]
> db.blog.update({"_id":ObjectId("595efe1af713ea7372854b9c")},post)
WriteResult({ "nMatched" : , "nUpserted" : , "nModified" : })
> db.blog.findOne()
{
"_id" : ObjectId("595efe1af713ea7372854b9c"),
"title" : "My Blog Post",
"content" : "HaHa",
"date" : ISODate("2017-07-07T03:20:44.698Z"),
"comments" : [ ]
}
可以通过查询看到,已经添加了comments键
 
4)删除: 使用remove方法可将文档从数据库中永久的删除,如果没有使用参数匹配,那么则会删除集合内的所有文档。它可以接受一个作为限定条件的文档作为参数
    > db.blog.remove({"_id":ObjectId("595efe1af713ea7372854b9c")})
WriteResult({ "nRemoved" : })
> db.blog.findOne()
null

可以看到,集合内没有文档了

 
 
三:数据类型
null:用于表示空值或者不存在的字段   {"x":null}
布尔型:布尔型有两个值true和false      {"x":true}
数值:
         shell默认使用64位浮点型数值       {"x":3.14}   or   {"x":3}
         对于整型值,可使用NumberInt类(表示4字节带符号整数)      {"x":NumberInt("3")}
                  NumberLong类(表示8字节带符号整数)   {"x":NumberLong("3")}
 
字符串:UTF-8字符串都可以表示为字符串类型的数据           {"x":"foobar"}
日期:日期被存储为自新世纪元以来经过的毫秒数,不存储时区   {"x":new Date}
正则表达式:查询时,使用正则表达式作为限定条件              {"x":/foobar/i}
数组:数据列表或数据集可以表示为数组         {"x":["a","b","c","d"]}
内嵌文档:文档可嵌套其他文档           {"x":{"foo":"bar"}}
对象id:对象id是一个12字节的ID,是文档的唯一标识
 
MongoDB shell的技巧:
在连接进入mongo后,可以使用help来帮助查看
    > help
db.help() help on db methods
db.mycoll.help() help on collection methods
sh.help() sharding helpers
rs.help() replica set helpers
help admin administrative help
help connect connecting to a db help
help keys key shortcuts
help misc misc things to know
help mr mapreduce
show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries with time >= 1ms
show logs show the accessible logger names
show log [name] prints out the last segment of log in memory, 'global' is default
use <db_name> set current database
db.foo.find() list objects in collection foo
db.foo.find( { a : } ) list objects in foo where a ==
it result of the last line evaluated; use to further iterate
DBQuery.shellBatchSize = x set default number of items to display on shell
exit quit the mongo shell
查看一个函数的源代码,可以直接使用,如:db.test.update 就会把update函数给显示出来
 

MongoDB基础知识(二)的更多相关文章

  1. DataBase MongoDB基础知识记录

    MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型 ...

  2. MongoDB基础知识记录

    MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型 ...

  3. MongoDB基础知识 02

    MongoDB基础知识 02 6 数据类型 6.1 null : 表示空值或者不存在的字段 {"x":null} 6.2 布尔型 : 布尔类型只有两个值true和false {&q ...

  4. MongoDB基础知识 01

    MongoDB基础知识  1. 文档  文档是MongoDB中的数据的基本单元,类似于关系型数据库管理系统的行. 文档是键值对的一个有序集.通常包含一个或者多个键值对. 例如: {”greeting& ...

  5. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

  6. 菜鸟脱壳之脱壳的基础知识(二) ——DUMP的原理

    菜鸟脱壳之脱壳的基础知识(二)——DUMP的原理当外壳的执行完毕后,会跳到原来的程序的入口点,即Entry Point,也可以称作OEP!当一般加密强度不是很大的壳,会在壳的末尾有一个大的跨段,跳向O ...

  7. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB

    MongoDB 简介 1. 易于使用:没有固定的模式,根据需要添加和删除字段更加容易 2. 易于扩展:MongoDB的设计采用横向扩展.面向文档的数据模型使它能很容易的再多台服务器之间进行分割.自动处 ...

  8. Dapper基础知识二

    在下刚毕业工作,之前实习有用到Dapper?这几天新项目想用上Dapper,在下比较菜鸟,这块只是个人对Dapper的一种总结. 2,如何使用Dapper?     首先Dapper是支持多种数据库的 ...

  9. python基础知识(二)

    python基础知识(二) 字符串格式化 ​ 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 ​ print(' %s is boy'%('tom')) ----> ...

  10. 常见问题:MongoDB基础知识

    常见问题:MongoDB基础知识 ·MongoDB支持哪些平台? ·MongoDB作为托管服务提供吗? ·集合(collection)与表(table)有何不同? ·如何创建数据库(database) ...

随机推荐

  1. 《深入理解Nginx:模块开发与架构解析》读书笔记

    1.nginx的特点:快.扩展性强.可靠性强.内存低消耗.支持高并发.热部署.开源免费 2.nginx由master进程来管理多个(CPU数)worker进程 3.配置按功能分,有4类: 1)用于调试 ...

  2. rabbitmq channel参数详解

    文章转载自: https://www.cnblogs.com/piaolingzxh/p/5448927.html    部分参数说明有修改 1.Channel 1.1 channel.exchang ...

  3. Go 安装 sqlite3驱动报错

    问题:最近在使用Go做一个博客示例,在使用go get 安装 sqlIite3的驱动遇到下面的问题(cc1.exe: sorry, unimplemented: 64-bit mode not com ...

  4. [数据结构]P1.3 栈 Stack

    * 注: 本文/本系列谢绝转载,如有转载,本人有权利追究相应责任. 栈是一种先进后出的结构(FILO),常见的操作有:push 入栈.pop删除栈顶元素并返回.peek 查看栈顶元素 与其他线性结构一 ...

  5. ThinkPHP5.0完全开发手册 --技术文档

    1.ThinkPHP5.0完全开发手册.chm 链接:https://pan.baidu.com/s/1199wK6q6O9IyOf5RU_-Xow 提取码:hnek 2.ThinkPHP5.0完全开 ...

  6. vue 模仿机票自定义日历组件,区间选择

    1.创建组件  components > calander > index.vue <template> <div class="page" v-if ...

  7. js中字符串和正则相关的方法

    正则表达式对象常用方法 test() 检索字符串中指定的值.返回 true 或 false. var str="Embrace You" var r1=/you/i.test(st ...

  8. 基于Python——实现两个文件夹中的文件拷贝

    [背景]当复制一个文件夹中的某文件到另一个文件夹中时是一件很容易的事情,可是如果存在很多文件夹中的文件需要一一拷贝,就会变的很繁琐,稍有不慎就会遗漏,今天就用Python来解决这个问题—— [代码实现 ...

  9. Oracle 监听器日志配置与管理

    十一假期间,某客户因为监听日志问题导致系统登录挂起,当时在返京的路上,因客户业务不允许中断,无奈之下,借了个本子帮客户做了紧急处理,今天恰好有空,在网上搜了下有关监听日志的内容,发现一个不错的帖子,内 ...

  10. 学习Linux系统中命令的简单方法

    如果说如何快速学习.了解Linux的话,我的答案是学命令.背命令!为何呢?对于一名新手来说,去学习Linux的思想.了解Linux的架构.明白Linux中“一切皆文件”概念虽然说是没有错,是对的.但是 ...