文档

多个键及关联的值有序的放置在一起就是文档,如"greeting":"Hello World!"

特点

  • 文档中键值对是有序的

  • 除了字符串还可以是其他类型:"age":18

  • 文档中的键是字符串,除极少数例外情况,可以使用任意UTF-8字符

    • 键不能含有\0(空字符),这个字符用来表示键的结尾
    • .和$有特殊含义,保留
    • _也是保留的,但是没有强制规定
  • mongo不但区分类型,也区分大小写

  • 不能有重复的键

集合

集合就是一组文档

命名

  • 集合名不能是空字符串
  • 不能含有\0字符
  • 不能以system.开头
  • 不能含有$

子集合

用.分隔的集合,比如blog.posts和blog.authors。

数据库

多个集合组成数据库

启动mongoDB

$ ./mongod.exe

启动失败,会有提示:

若如下所示,则表示启动成功:

新开一个命令行窗口,输入./mongo.exe,这里可以运行任何JavaScript程序:

shell基本操作

> post={
... "title":"My blog post",
... "content":"Here's my blog post.",
... "date":new Date()
... }
> db.blog.insert(post)

> db.blog.find()
{ "_id" : ObjectId("599300b0ab5eab2f157ace21"), "title" : "My blog post", "content" : "Here's my blog post.", "date" : ISODate("2017-08-15T14:09:27.288Z") }
> db.blog.findOne()
{ "_id" : ObjectId("599300b0ab5eab2f157ace21"), "title" : "My blog post", "content" : "Here's my blog post.", "date" : ISODate("2017-08-15T14:09:27.288Z") }

find最多显示20个匹配的文档,但也可以获取更多,以后再说。

> post.comments=[]
[ ]
> db.blog.update({"title":"My blog post"},post)

> db.blog.remove({"title":"My blog post"})

Tips

  • 可以通过调用函数名来获取函数源码:

    > db.blog.remove
  • 如果集合名称与数据库函数名称相同,那么通过db.集合名可能会报错,可以通过db.getCollection("集合名")来获取。

Mongodb学习笔记(1)--入门的更多相关文章

  1. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  2. MongoDB 学习笔记之 入门安装和配置

    下载MongoDB: 下载解压即可使用. 为了启动方便和统一管理, 在Mongo根目录下建立/data, /logs, /conf文件夹. 在conf文件夹下建立mongodb.conf 文件,基本配 ...

  3. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  4. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  5. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  6. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  7. WebSocket学习笔记——无痛入门

    WebSocket学习笔记——无痛入门 标签: websocket 2014-04-09 22:05 4987人阅读 评论(1) 收藏 举报  分类: 物联网学习笔记(37)  版权声明:本文为博主原 ...

  8. MongoDB 学习笔记(原创)

    MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...

  9. MongoDB学习笔记(转)

    MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...

随机推荐

  1. Python(八)之函数

    Python函数 函数作用: (1)代码重用 (2)一种设计工具,分解复杂问题 (3)将相关功能打包并参数化 函数种类: 全局函数:定义在模块中 局部函数:嵌套在其他函数中 lambda函数:表达式 ...

  2. javascript中json对象长度

    JSON中无法使用length去获取长度,length只针对数组对象适用: var data={"showdata":{"中国人民大学":{"2013 ...

  3. 【C++程序员学 python】python split and join 分割与合并

    感觉这名字有点不对,但不知道用什么好,就将就吧. 坑爹啊,居然要把符号放在前面.

  4. Go语言学习(四)经常使用类型介绍

    1.布尔类型 var v1 bool v1 = true; v2 := (1==2) // v2也会被推导为bool类型 2.整型 类 型 长度(字节) 值 范 围 int8 1  128 ~ 12 ...

  5. spark练习题

    site1,user1,-- :: site1,user2,-- :: site1,user3,-- :: site1,user3,-- :: site2,user4,-- :: site3,user ...

  6. java泛型中<? super String>和<? extends String> 的区别

    (1)<? super String> is any class which is a superclass of String (including String itself). (I ...

  7. am335x ar8031 双网口配置记录

    kernel version 4.4.12 ar8031 phy 驱动是: kernel_4.4.12/drivers/net/phy/at803.c kernel make menuconfig d ...

  8. 看不懂深度Linux系统的文件管理器图标

    为了保持对Linux的熟悉度,MacBookPro一般放在公司,家里(每次用这个词是我觉得最纠结的时候,我现在有家吗?)用的是普通笔记本装了深度Linux. 之所以安装深度,主要的原因应该是支持国产吧 ...

  9. flume中HdfsSink参数说明

    flume到hdfsSink: type hdfs path 写入hdfs的路径,需要包含文件系统标识,比如:hdfs://namenode/flume/webdata/ 可以使用flume提供的日期 ...

  10. linux下nc的使用

    发送端:cat test.txt | nc -l -p 6666或者nc -l  -p 6666 < test.txt                    有些版本不要在 -p[监听6666端 ...