mongo学习-基础知识

文档
文档就是键值对的一个有序集。每种编程语言表示文档的方法不太一样,但大多数编程语言都有一些想通的数据结构,比如映射、散列、字典。
MongoDB不但区分类型,而且区分大小写。
例:
下面两个文档是不同的
{"foo":3}
{"foo":"3"}

下面两个文档是不同的
{"foo":3}
{"Foo":3}

MongoDB的文档不能有重复的键。
文档中的键/值对是有序的:{"x":1,"y":2}与{"y":2,"x":1}是不同的。

集合
集合就是一组文档。如果将mongoDB中的一个文档比喻为关系型数据库中的一行,那么一个集合就相当于一张表
1、动态模式
集合是动态模式的。这意味着一个集合里面的文档可以是各式各样的。因为集合里面可以放置任何文档,随之而来的一个问题是:还有必要使用多个集合吗?
使用多个集合的原因:
*不利于开发和管理
*分开查询多个集合要快得多
*把同种类型的文档放 在一个集合里,数据会更中集中。
*可以更有效地对集合进行索引

数据库
在MongoDB中,多个文档组成集合,而多个集合可以组成数据库。一个MongoDB实例可以承载多个数据库,
数据库名区分大小写,简单起见,数据库名应全部小写。
数据库最终会变成文件系统里的文件,而数据库名就是相应的文件名,这是数据库名有如此多限制的原因。
保留数据库名:admin    local     config

MongoDB在保留JSON基本键/值对的基础上,添加了其他一些数据类型。
*null
用于表示空值或者不存在的字段:{"x":null}
*布尔型
{"x":true}
*数值
shell默认使用64位浮点型数值。对于整数型,可使用NumberInt类(表示4字节带符号整数)或NumberLong类(表示8字节带符号整数):
{"x":NumberInt("3")}
{"x":NimberLong("3")}
*字符串
{"x":"foobar"}
*日期
{"x":new Date()}
*正则表达式
查询时,使用正则表达式作为限定条件,语法也与JavaScript的正则表达式语法相同:
{"x":/foobar/i}
*数组
{"x":["a","b","c"]}
*内嵌文档
文档可以内嵌其他文档,被嵌套的文档作为父文档的值:
{"x":{"foo":"bar"}}
*对象id
对象id是一个12字节的ID,是文档的唯一标识。
{"x":ObjectId()}
*二进制数据
*代码
查询和文档中可以包括任意JavaScript代码:

时间: 2024-10-25 20:14:32

mongo学习-基础知识的相关文章

(八)从零开始学人工智能--统计学习:统计学习基础知识

目录 统计学习基础知识 1. 统计学习种类 1.1 监督学习 1.2 非监督学习 2. 统计学习中的基本概念 2.1 统计学习三要素:模型,策略,算法 2.2 欠拟合和过拟合 2.3 如何避免过拟合 2.4 过拟合产生的原因 2.5 最大似然估计和贝叶斯估计 3. 线性回归 3.1 经典线性回归 3.2 岭回归(ridge regression) 3.3 lasso回归和ElasticNet 4. 线性分类 4.1 感知机 4.2 逻辑回归(logistic regression) 4.3 So

基于Linux的USB子系统学习 --- <基础知识与USB协议概述> ing

一.参考资料 1.<USB基础知识概论>  http://www.crifan.com/files/doc/docbook/usb_basic/release/html/usb_basic.html 2.<USB in a NutShell> http://www.beyondlogic.org/usbnutshell/usb1.shtml 3.<USB开发大全(第四版)> http://download.csdn.net/download/qqqq419276485/

IOS科研IOS开发笔记学习基础知识

这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollView; tableScrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];//窗体大小 tableScrollView.contentSize=CGSizeMake(640, 480);//设置内容视图的大

java学习--基础知识第四天-- Random、数组

今日内容介绍 u Random u 数组 第1章 Random 1.1 产生整数随机数 1.1.1 Random的使用步骤 我们想产生1~100(包含1和100)的随机数该怎么办呢? 我们不需要自己去写算法,因为Java已经为我们提供好了产生随机数的类---Random: 作用: – 用于产生一个随机数 ? 使用步骤(和Scanner类似) – 导包 ? import java.util.Random; – 创建对象 ? Random r = new Random(); – 获取随机数 ? in

java学习--基础知识进阶第二天--继承、匿名对象&amp;final、抽象类

今日内容介绍 u 继承 u 抽象类 第1章 继承 1.1 继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 1.2 继承的格式&使用  在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 1.2.1 案例代码一: package com.itheima_01; /* * 继承:多个类有共同的成员变量和成员方法,抽取到另外一个类

java学习--基础知识进阶第三天--接口、多态

今日内容介绍 u 接口 u 多态 第1章 接口 1.1 接口的概述 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的"类". 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义与实现分离,优化了程序设计. 1.2 接口的格式&使用 1.2.1 接口的格式 与定义类的class不同,接口定义时需要使用interface关键字. 定义接口所在的仍为.java文件,虽然声明时使用的为interface关键字

java学习--基础知识阶段性总结--基础面试题

1. 静态变量和实例变量的区别 局部变量不能用静态的,如果用了静态的,则不会从静态区消失 * 静态变量也叫类变量  成员变量也叫对象变量 * A:所属不同 * 静态变量属于类,所以也称为为类变量 * 成员变量属于对象,所以也称为实例变量(对象变量) * B:内存中位置不同 * 静态变量存储于方法区的静态区 * 成员变量存储于堆内存 * C:内存出现时间不同 * 静态变量随着类的加载而加载,随着类的消失而消失 * 成员变量随着对象的创建而存在,随着对象的消失而消失 * D:调用不同 * 静态变量可

mysql 学习基础知识汇总

DBMS模型: 层次模型 网状模型 关系模型 以文件来存取数据的困难:数据冗余和不一致性,数据访问困难,数据孤立,数据完整性问题,原子性问题,并发访问问题,安全性问题 XML(扩展标机语言) 关系模型: 关系模型 E-R实体-关系模型 对象模型 半结构化数据模型 文件:对于文件来说可以从三个层次来分析 1.表示层 文件 2.逻辑层 文件系统:存储引擎 3.物理层 元数据 数据块 E-R图的表示方法 实体:  矩形表示 属性:   椭圆表示 联系:   菱形表示 各实体间的对应关心:1:1    

JavaScript学习----基础知识

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JavaScript Study Basi