我的MongoDB-基础笔记

mongoDB 知识点小结

1.ObjectId  12位 4时间戳+3机器识别吗+2进程id+3个随机数

getTimestamp()

str()

2.Map Reduce 将大批量的工作分解执行,然后将结果合并成最终的结果。

3.MongoDB全文检索

创建索引:db.posts.ensureIndex({post_text:"text"})

使用全文检索:db.posts.find({$text:{$search:"runoob"}})

删除全文索引:

db.posts.getIndexes()

db.posts.dropIndex("post_text_text")

4.可以使用正则

使用正则查询的三种方式:

db.posts.find({post_text:{$regex:"runoob"}})

db.posts.find({post_text:/runoob/})

title:eval("/"+title+"/i")    // 等同于 title:{$regex:title,$Option:"$i"}

5.固定大小的集合

特点:1>插入速度极快  2>按照插入顺序的查询输出极快  3>能在插入最新数据时,淘汰最早的数据

用法:1>存储日志信息  2>缓存少量文档

创建:db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000}) 大小固定 文档个数固定

判断:db.cappedLogCollection.isCapped()

转换:db.runCommand({"convertToCapped":"posts",size:10000})

查询:db.cappedLogCollection.find().sort({$natural:-1})

6.自增

MongoDB没有实现,可以变成实现这个功能

该函数实现了key的自增

function getNextSequenceValue(sequenceName){

var sequenceDocument = db.counters.findAndModify(

{

query:{_id: sequenceName },

update: {$inc:{sequence_value:1}},

"new":true

});

return sequenceDocument.sequence_value;

}

7.GridFS

存储超出16M的文件

files 文件的信息描述

chunk 文件的拆分体 256k/个

8.MongoDb关系 1:1 1:N N:1 N:N

1对多:引入式关系  嵌入式关系

9.数据库的引用

{

$ref:集合名称

$id:引用的id

$db:数据库名称,可选参数

}

使用:

>var user = db.users.findOne({"name":"Tom Benzamin"})

>var dbRef = user.address

>db[dbRef.$ref].findOne({"_id":(dbRef.$id)})

10.覆盖索引的使用

db.users.ensureIndex({gender:1,user_name:1})

db.users.find({gender:"M"},{user_name:1,_id:0})  正确

db.users.find({gender:"M"},{user_name:1})。      错误

11.查询分析

hint()和explain()

12.MongoDB原子操作

不支持事物,但支持一些原子的操作

。。。例如:$set $unset $inc $push $pushAll $pull $addToSet $rename $bit

13.MonogoDB索引的使用

创建索引:db.users.ensureIndex({"tags":1})

使用索引:db.users.find({tags:"cricket"})

验证使用:db.users.find({tags:"cricket"}).explain()

索引子文档字段:

创建索引:db.users.ensureIndex({"address.city":1,"address.state":1,"address.pincode":1})

索引使用:db.users.find({"address.city":"Los Angeles"})

索引目的:方便读取,缺点额外的内存开销,2.6增加了对索引字段值的长度限制。

14.基础

MongoDB安装和连接略

创建数据库:use runoob

查看所有数据库:show dbs

插入数据:db.runoob.insert({"name":"菜鸟教程"})

删除当前数据库:db.dropDatabase()

删除集合:db.collection.drop()

创建集合:db.creteCollection(name,{ capped : true, autoIndexId : true, size : 6142800, max : 10000 })

capped:是否固定

autoIndexId:是否以_id创建索引

size:集合最大值

max:集合中包含文档最大数量

插入文档:db.col.insert(document)

更新文档:

db.collection.update(

<query>,

<update>,

{

upsert: <boolean>,

multi: <boolean>,

writeConcern: <document>

}

)

删除文档:

db.collection.remove(

<query>,

<justOne>

)

查询文档:db.col.find().pretty()

操作符介绍:

条件操作符:><>=<=...

$type:数据类型和数字对应

limit和skip  $gt优化

sort()

aggregate聚合操作...

管道:当前命令的输出结果作为下一个命令的参数

MongoDB复制:副本会接管主节点成为主节点,不会出现宕机的情况

分片。。。。

MongoDB Java和Node.js中的使用。。。。

原文地址:http://blog.51cto.com/13496382/2086916

时间: 2024-08-07 09:29:55

我的MongoDB-基础笔记的相关文章

MongoDB 学习笔记一 安装以及基础命令

一.MongoDB安装配置 1.获取最新版本: wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz 2.解压缩即可执行 tar zxvf mongodb-linux-x86_64-2.0.2.tgz tar zxvf mongodb-linux-x86_64-2.0.2.tgz cd /usr/mongodb-linux-x86_64-2.0.2/bin 但是在运行前,需要创建mongodb需要的存放数据和日志的

MongoDB 学习笔记(一)基础篇

1.MongoDB 特点 面向集合存储,存储对象类型的数据方便 模式自由,不需要定义任何模式(schma) 动态查询 完全索引,包含内部对象 复制和故障恢复方便 高效的二进制数据存储 支持c# 平台驱动 2.体系结构 一台服务器可以创建多个Server 实例和数据库,(推荐一天server 机器创建一个实例), 数据库:MongoDB 中的一系列与磁盘有关的物理文件(数据文件,日志文件等). 数据逻辑结构:文档 (documnet) 集合(collection) 数据库(database). d

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

网络基础笔记——OSI七层模型

OSI七层模型 由于整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等.如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只程序都需要改写.所以我们将整个网络分成数层,每层都有自己独立的功能,而且每层的代码都可以独立撰写,因为相互之间不会干扰.如此一来,当某个小环节出现问题时,只要将该层的代码改写即可.并且这样可以让整个网络层次更加的清晰. 在网络上传输信息就像是一个发包裹的过程,从己方的应用程序开始往第七层的包裹里塞数据,再依次塞到第一层的包

[Java基础笔记]数组

Java基础笔记 定义数组: int[] numbers = new int[100]; //方法一 double[] num = new double[10]; int[][] a = new int[2][5]; 通过new创建的数组,元素默认值为0(0.0) int[] scores = {5,4,33,12,46}; //方法二 int[][] a = { //位数不足,自动补0 {5,3,2,1,6}, {10,12,14,15}, }; 数组特性:存储的都是同类型数据:长度定义后不可

MongoDB学习笔记系列

回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助和启发,文章中有对新技术的研究(Mongo驱动),对老技术的回顾(代码重构),还有对架构设计的阐述等(面向接口编程,对扩展开放,对修改关闭,所以出现了IMongoRepository接口). MongoDB学习笔记系列~目录 MongoDB学习笔记~环境搭建 (2015-03-30 10:34) M

windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)

windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) 简单说几句 在mongodb中3元素:db(数据库).collection(集合).document(文档) 其中collection类似于数据库中的表,document类似于行,这样一来我们就将内容对比起来记忆学习了. 数据格式 MongoDB documents是BSON格式(一种类json的一种二进制形式的存

MongoDB学习笔记一:MongoDB的下载和安装

趁着这几天比较空闲,准备学习一下MongoDB数据库,今天就简单的学习了一些MongoDB的下载和安装,并创建了存储MongoDB的数据仓库.将自己今天学习到的写成博客分享给大家. 一.MongoDB的下载和安装 MongoDB的下载地址为:http://www.mongodb.org/ 1.进入官网的首页后,在首页的右上方单击Downloads连接,如图所示: 2.在页面中可以看到目前最新的版本和以前发布过的版本,这里选择最新版本,windows 32位的进行下载,文件的格式为ZIP格式的,单

C# 基础笔记(第一篇)

C#基础 概念:.net与c#.net/dontnet:一般指.net framework框架,一种平台,一种技术c#(charp):一种编程语言,可以开发基于.net的应用. *java既是一种技术又是一种编程语言.                           .net都能干什么?开发桌面应用程序   Winforminternet应用程序    Asp.net/webservice C/S:客户机(Client)/服务器模式(Server)B/S:浏览器(Browser)/务器模式(

我的LINUX基础笔记

Linux系统管理      1 Day   2014.5.23 su -name   切换用户passwd 密码   更改密码gnome-terminal    伪CLI   桌面终端程序1.查看内核版本uname -r    2.查看红帽系统版本cat /etc/redhat-rdlease3.查看LINUX标准分发版信息  lsb_release4.查看网卡的IP,MAX       ifconfig                       ifconfig eth 10.0.0.10